Spring MVC controller 读取配置文件
用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://*.com/questions/5275724/spring-3-0-5-doesnt-evaluate-value-annotation-from-properties
上一篇: origin橘子账号什么时候注册在哪看 查看origin账号注册时间方法
下一篇: 【持续集成介绍】
推荐阅读
-
Spring读取不同环境的配置文件
-
HandlerMethodArgumentResolver(一):Controller方法入参自动封装器【享学Spring MVC】
-
Spring MVC学习笔记之Controller查找(基于Spring4.0.3)
-
Spring读取配置文件 @Value
-
Spring MVC Controller 接收ajax的数组参数说明
-
SpringMVC杂记(十五) spring-mvc controller 的切面
-
[原创] Spring 配置文件中如何读取系统环境变量
-
Spring mvc Ambiguous mapping found. Cannot map controller bean method
-
Spring MVC 3.x annotated controller的几点心得体会
-
spring mvc常用注解@Component @Controller @Service @Repository