Spring @Value注解使用${}进行注入

原文: http://my.oschina.net/js99st/blog/632104
spring3中新增的@value注解 http://bijian1013.iteye.com/blog/2024068这里成功配置

controller读取不到的原因http://cdn.verydemo.com/demo_c143_i7726.html

我在之前的项目中一直使用下面的格式注入:
 @Value("#{config['redis.host']}")
 private String  redisHost;

使用下面的方式注入总是不成功。
 @Value("${redis.host}")
 private String  redisHost;

最近终于发现,扫描配置文件的语句:
<context:property-placeholder location="classpath*:/xxx.properties" />

要交给springMVC的DispatcherServlet去扫描,而不是spring的监听器ContextLoaderListener去扫描,就可以比较方便的使用“${xxx}”去注入。



详细配置:

Spring MVC 通过@Value注解读取.properties配置内容,@value.properties

第一步:

在applicationContext.xml配置:

1     <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
2         <property name="locations">
3             <list>
4                 <value>classpath:/config/*.properties</value>
5             </list>
6         </property>
7     </bean>
8     <bean id=" propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
9         <property name="properties" ref="configProperties" />
10     </bean>   
第二步:

建立配置文件内容:

例如:userPageSize=5

第三步:

在Controller中使用注解获得配置项内容:

1 @Value("#{ configProperties['userPageSize']}")
2 private String userPageSize;
第四步:

后面的代码就可以使用userPageSize这个私有变量了,这个字符串的值就是我们配置文件中配置的5.

猜你喜欢

转载自panyongzheng.iteye.com/blog/2281082