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

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.

转载于:https://www.cnblogs.com/talkingcat/p/10492798.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101062.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 【Java】Java四舍五入保留1位小数、2位小数…

    【Java】Java四舍五入保留1位小数、2位小数…Java四舍五入保留1位小数的方法:importjava.math.BigDecimal;publicclassTest{publicstaticvoidmain(String[]args){doubled1=3.02;System.out.println(d1);//利用字符串格式化的方式实现四舍五入…

    2022年5月11日
  • xcopy-参数详解

    xcopy-参数详解XCOPY——目录复制命令 1.功能:复制指定的目录和目录下的所有文件连同目录结构。 2.类型:外部命令 3.格式:XCOPY[源盘:]〈源路径名〉[目标盘符:][目标

    2022年7月1日
  • Hook技术看这篇就够了[通俗易懂]

    Hook技术看这篇就够了[通俗易懂]   相信很多搞机的朋友都玩过Xposed,它实现了很多不可思议的功能。它是怎么实现的呢?这里就得提到我们的Hook技术了。    关于Android中的Hook机制,大致有两个方式: 要root权限,直接Hook系统,可以干掉所有的App。 免root权限,但是只能Hook自身,对系统其它App无能为力。   时间所限,这里不展开了。   知识点: …

    2022年5月9日
  • tensorflowpycharm安装_python tensorflow安装

    tensorflowpycharm安装_python tensorflow安装【报错】CouldnotinstallpackagesduetoanEnvironmentError:[WinError5]拒绝访问。:’f:\\strsoftware\\anaconda\\stranaconda\\lib\\site-packages\\tensorflow\\python\\_pywrap_tensorflow_internal.pyd’Considerusingthe`–user`optionorcheckthepermissions.或

    2022年8月28日
  • URAL 1180. Stone Game (博弈 + 规律)[通俗易懂]

    URAL 1180. Stone Game (博弈 + 规律)

    2022年1月24日
  • Java中重载与重写的特点和区别[通俗易懂]

    Java中重载与重写的特点和区别[通俗易懂]一、重载(overload)重载:发生在Java的同一个类里面,通过定义相同的方法,定义不同的参数列表来区分开这些相同的方法,参数列表的不同可以是参数的类型、参数的个数和参数的顺序。当我们调用这些方法的时候通过传入参数的不同,在运行时Java虚拟机会自行调用不同的方法来进行处理。由于Java的修饰符都可以访问同一个类里面的方法,所以方法的重载与方法的修饰符无关;Java的返回值不能区别这些方法,因为返回值是在运行后才体现出来的,而两个参数列表相同仅仅是返回值相同的方法在Java编译时就会报错,虚拟机在运行

    2022年7月8日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号