Search code examples
spring-bootapplication.properties

many of the same propertis get like list of Instances


How to prepare properties in application.properties so in javas side, get like List

server.ip=192.168.0.0
server.login=login1
server.password=password1

server.ip=192.168.0.1
server.login=login2
server.password=password2

originally properties were in xml but want to replace to .properties

<servers>
    <server>
        <url>https://192.168.0.0</url>
        <username>login1</username>
        <password>password1</password>
    </server>
    <server>
        <url>https://192.168.0.1</url>
        <username>login2</username>
        <password>password2</password>
    /server>    
</servers>

Solution

  • Below example to create .properties file from XML file. This code can be used to read properties key-values from XML file, to be used in the application code.

    package xyz.demo;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.InvalidPropertiesFormatException;
    import java.util.Properties;
    
    public class XMLToProperties
    {
        public static void main(String[] args) throws InvalidPropertiesFormatException, IOException
        {
            String outPropertiesFile = "application.properties";
            String inXmlFile = "applicationProperties.xml";
    
            InputStream inStream = new FileInputStream(inXmlFile);          //Input XML File
            OutputStream outStream = new FileOutputStream(outPropertiesFile);   //Output properties File
    
            Properties props = new Properties();
    
            //Load XML file
            props.loadFromXML(inStream);
    
            //Store to properties file
            props.store(outStream, "Converted from applicationProperties.xml");
    
            //Use properties in code
            System.out.println(props.get("input.dir"));         //Prints 'c:/temp/input'
        }
    }
    

    applicationProperties.xml

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
        <comment>application.properties</comment>
        <entry key="input.dir">c:/temp/input</entry>
        <entry key="spring.batch.job.enabled">false</entry>
        <entry key="spring.main.banner-mode">off</entry>
    </properties>
    

    application.properties

    #Converted from applicationProperties.xml
    #Mon Jul 23 18:15:00 IST 2018
    
    spring.batch.job.enabled=false
    input.dir=c\:/temp/input
    spring.main.banner-mode=off
    

    More details here: https://howtodoinjava.com/xml/convert-xml-to-properties/