Wednesday, March 8, 2017

Read Properties File



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;
}
EDIT: updated the code to parse property with mutliple comma-separated values:
my.property.name=aaa,bbb,ccc
If that doesnt 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
  }
}

No comments:

Post a Comment