• 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.

  • 相关阅读:
    物联网和互联网到底有什么区别和联系呢?
    JAVA流程控制
    JAVA运算符
    JAVA中的变量及取值范围
    CSS position 属性
    web中的HTML CSS
    css选择器
    LAST_INSERT_ID
    [方法] 如何做产品规划
    [方法]需求挖掘采集的方法
  • 原文地址:https://www.cnblogs.com/talkingcat/p/10492798.html
Copyright © 2020-2023  润新知