Spring .properties file: get element as an Array

后端 未结 5 1771
灰色年华
灰色年华 2020-12-02 15:21

I\'m loading properties attributes from a .properties file using Spring as follows:

file: elements.properties
base.module.elementToSearch=1
base         


        
5条回答
  •  囚心锁ツ
    2020-12-02 15:49

    With a Spring Boot one can do the following:

    application.properties

    values[0]=abc
    values[1]=def
    

    Configuration class

    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @Component
    @ConfigurationProperties
    public class Configuration {
    
        List values = new ArrayList<>();
    
        public List getValues() {
            return values;
        }
    
    }
    

    This is needed, without this class or without the values in class it is not working.

    Spring Boot Application class

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    import java.util.List;
    
    @SpringBootApplication
    public class SpringBootConsoleApplication implements CommandLineRunner {
    
        private static Logger LOG = LoggerFactory.getLogger(SpringBootConsoleApplication.class);
    
        // notice #{} is used instead of ${}
        @Value("#{configuration.values}")
        List values;
    
        public static void main(String[] args) {
            SpringApplication.run(SpringBootConsoleApplication.class, args);
        }
    
        @Override
        public void run(String... args) {
            LOG.info("values: {}", values);
        }
    
    }
    

提交回复
热议问题