为了简化读取properties文件中的配置值,spring支持@value注解的方式来获取,这种方式大大简化了项目配置,提高业务中的灵活性。
1、@Value(“#{configProperties[‘key’]}”)
2、@Value(“${key}”)
1 2 3 4 5 6 7 8 9 10 11 |
配置方法1: <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations"> <list> <value>classpath:value.properties</value> </list> </property> </bean>
配置方法2: <util:properties id="configProperties" location="classpath:value.properties"></util:properties> |
注:配置1和配置2等价,这种方法需要util标签,要引入util的xsd:
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd"
value.properties
1 |
key=1 |
ValueDemo.java
1 2 3 4 5 6 7 8 9 |
@Component public class ValueDemo { @Value("#{configProperties['key']}") private String value;
public String getValue() { return value; } } |
1、在2.1.1的配置文件基础上增加:
1 2 3 |
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"> <property name="properties" ref="configProperties"/> </bean> |
2、直接指定配置文件,完整的配置:
1 2 3 4 5 6 7 8 |
<bean id="appProperty" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <array> <value>classpath:value.properties</value> </array> </property> </bean> |
ValueDemo.java
1 2 3 4 5 6 7 8 9 |
@Component public class ValueDemo { @Value("${key}") private String value;
public String getValue() { return value; } } |