Spring 中 @Value 註解的使用方法
阿新 • • 發佈:2018-12-31
為了簡化讀取properties檔案中的配置值,spring支援@value註解的方式來獲取,這種方式大大簡化了專案配置,提高業務中的靈活性。
一、兩種使用方法
1、@Value(“#{configProperties[‘key’]}”)
2、@Value(“${key}”)
二、配置
2.1 @Value(“#{configProperties[‘key’]}”)使用
2.1.1配置檔案:
[html] view plain copy print?- 配置方法1:
- <beanid=“configProperties”class=“org.springframework.beans.factory.config.PropertiesFactoryBean”
- <propertyname=“locations”>
- <list>
- <value>classpath:value.properties</value>
- </list>
- </property>
- </bean>
[html] view plain copy print?配置方法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:propertiesid=“configProperties”location=“classpath:value.properties”></util:properties>
配置方法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
[html] view plain copy print?- key=1
key=1
ValueDemo.java
[java] view plain copy print?- @Component
- publicclass ValueDemo {
- @Value(“#{configProperties[‘key’]}”)
- private String value;
- public String getValue() {
- return value;
- }
- }
@Component
public class ValueDemo {
@Value("#{configProperties['key']}")
private String value;
public String getValue() {
return value;
}
}
2.2 @Value(“${key}”)使用
2.2.1 配置檔案
1、在2.1.1的配置檔案基礎上增加:
[html] view plain copy print?- <beanid=“propertyConfigurer”class=“org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer”>
- <propertyname=“properties”ref=“configProperties”/>
- </bean>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="properties" ref="configProperties"/>
</bean>
2、直接指定配置檔案,完整的配置:[html] view plain copy print?
- <beanid=“appProperty”
- class=“org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”>
- <propertyname=“locations”>
- <array>
- <value>classpath:value.properties</value>
- </array>
- </property>
- </bean>
<bean id="appProperty"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<array>
<value>classpath:value.properties</value>
</array>
</property>
</bean>
ValueDemo.java[java] view plain copy print?
- @Component
- publicclass ValueDemo {
- @Value(“${key}”)
- private String value;
- public String getValue() {
- return value;
- }
- }
@Component
public class ValueDemo {
@Value("${key}")
private String value;
public String getValue() {
return value;
}
}