springproperties-file

How to read values from properties file?


I am using spring. I need to read values from properties file. This is internal properties file not the external properties file. Properties file can be as below.

some.properties ---file name. values are below.

abc = abc
def = dsd
ghi = weds
jil = sdd

I need to read those values from the properties file not in traditional way. How to achieve it? Is there any latest approach with spring 3.0?


Solution

  • Configure PropertyPlaceholder in your context:

    <context:property-placeholder location="classpath*:my.properties"/>
    

    Then you refer to the properties in your beans:

    @Component
    class MyClass {
      @Value("${my.property.name}")
      private String[] myValues;
    }
    

    To parse property with multiple comma-separated values:

    my.property.name=aaa,bbb,ccc
    

    If that doesn't work, you can define a bean with properties, inject and process it manually:

    <bean id="myProperties"
          class="org.springframework.beans.factory.config.PropertiesFactoryBean">
      <property name="locations">
        <list>
          <value>classpath*:my.properties</value>
        </list>
      </property>
    </bean>
    

    and the bean:

    @Component
    class MyClass {
      @Resource(name="myProperties")
      private Properties myProperties;
    
      @PostConstruct
      public void init() {
        // do whatever you need with properties
      }
    }