0
点赞
收藏
分享

微信扫一扫

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


spring3中新增的@value

[color=red]controller读取不到的原因[/color]: [url]http://cdn.verydemo.com/demo_c143_i7726.html[/url]

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

@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}”去注入。




[color=red][b]


详细配置:[/b][/color]


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="[color=red][b]propertyConfigurer[/b][/color]" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">

 9 <property name="properties" ref="configProperties" />

10 </bean>


第二步:



建立配置文件内容:



例如:userPageSize=5



第三步:



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



1 @Value("#{[b][color=red]configProperties[/color][/b]['userPageSize']}")

2 private String userPageSize;

第四步:



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


举报

相关推荐

0 条评论