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 

我在之前的項目中一直使用下面的格式注入: 

Java代碼   收藏代碼
  1. @Value("#{config['redis.host']}")  
  2. private String  redisHost;  


使用下面的方式注入總是不成功。 

Java代碼   收藏代碼
  1. @Value("${redis.host}")  
  2. private String  redisHost;  


最近終於發現,掃描配置文件的語句: 

Xml代碼   收藏代碼
  1. <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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM