转载 

Spring MVC controller 读取配置文件

分类:    2891人阅读    IT小君  2015-10-30 19:42

用Spring的MVC做开发有段时间里。天天打交道的就是各种的controller。

今天遇到一个问题,需要读取配置文件configure.properties,通过“注释”方式注入给controller。

spring的读取配置如下:

	<bean
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>classpath:config/configure.properties</value>
			</list>
		</property>
	</bean>
我的spring的XML配置文件如下:

spring-ctx-application.xml  
spring-ctx-repository.xml  
spring-mvc-servlet.xml 
我把PropertyPlaceholderConfigurer的XML配置放到了spring-ctx-application.xml里面。配置文件和controller的代码如下:

page.query.rownum=10
@Value("${page.query.rownum}")
	private String pageQueryRownum;
	
	
	public void setPageQueryRownum(String pageQueryRownum) {
		this.pageQueryRownum = pageQueryRownum;
	}

但是发现了一个问题,被注入的 pageQueryRownum 并没有打印出我期望的数字 10, 而是打印出来了${page.query.rownum}。让我困惑。

后来找到了问题,我把PropertyPlaceholderConfigurer的XML配置放到了spring-mvc-servlet.xml的xml中,问题就解决了。看了老外写的东西,才知道,这是不同的spring context,才造成配置在 spring-ctx-application.xml的配置信息无法读取到。而我的springMVC的配置信息都在spring-mvc-servlet.xml中。为了让controller读取到配置文件,需要把PropertyPlaceholderConfigurer的XML配置到同样的context的spring-mvc-servlet.xml中,问题就解决了。

参考:

http://stackoverflow.com/questions/5275724/spring-3-0-5-doesnt-evaluate-value-annotation-from-properties

http://stackoverflow.com/questions/11890544/spring-value-annotation-in-controller-class-not-evaluating-to-value-inside-pro

点击广告,支持我们为你提供更好的服务

html5 svg夜空中星星流星动画场景特效

html5 canvas进度条圆环图表统计动画特效

中小型创意设计服务公司网站模板

HTML5 Canvas竖直流动线条背景动画特效

现代时尚家具公司网站模板

响应式时尚单品在线商城网站模板

网页设计开发公司网站模板

css+js实现的颜色渐变数字时钟动画特效

jQuery右端悬浮带返回顶部特效

html5图标下拉搜索框自动匹配代码

js+css3抽奖转盘旋转点餐代码

canvas炫酷鼠标移动文字粒子特效

响应式咖啡饮品宣传网站模板

HTML5现代家居装潢公司网站模板

html5 canvas彩色碎片组合球形旋转动画特效

小众时尚单品在线电子商务网站模板

css鼠标跟随文字模糊特效

响应式太阳能能源公司网站模板

有机水果蔬菜HTML5网站模板

HTML5数字产品服务公司网站模板

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务