`
kanpiaoxue
  • 浏览: 1744705 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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://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

 

分享到:
评论
1 楼 BuDongOrz 2016-06-07  

相关推荐

    Spring MVC 入门实例

    9 import org.springframework.web.servlet.mvc.Controller; 10 import org.springframework.web.servlet.ModelAndView; 11 12 import javax.servlet.http.HttpServletRequest; 13 import javax.servlet....

    看透springMvc源代码分析与实践

    8.2.2 创建Spring MVC的xml配置文件85 8.2.3 创建Controller和view86 8.3 关联spring源代码87 8.4 小结89 第9章 创建Spring MVC之器90 9.1 整体结构介绍90 9.2 HttpServletBean93 9.3 FrameworkServlet95 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言支持 2.6.2. JMX 2.6 .3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring 2.0 ...

    Spring.3.x企业应用开发实战(完整版).part2

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    Spring中文帮助文档

    3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @...

    springmybatis

    mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in ...

    Spring API

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

    sunyurepository-springmvc-ueditor-master.zip

    Ueditor项目是一个Spring MVC与百度文本编辑器ueditor集成的例子(ps:部分代码来自网络),本例相比官方的jsp例子实现上更为优雅,并且将文件上传和下载的接口放在Controller中去实现更方便维护,包括ueditor的json...

    Spring3.x企业应用开发实战(完整版) part1

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    Spring面试题

    用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的 Validate()验证后选择将...

    WebChat:使用SSM框架搭建一个WEBCHAT在线聊天的软件

    chatUser/login.do 路径会被SpringMVC的控制器DispatcherServlet截取,(在第一次执行的时候,加载spring_mvc.xml文件 会创建的对象是:biz对象以及controller对象 ,保存请求路径和controller的对应关系 chatUs

    超级市场:设计精良的网上商城系统,包括前端,预定,数据库,负载均衡,数据库缓存,分库分表,读取分离,全文检索,消息队列等,使用SpringCloud框架,基于Java开发。该项目可部署到服务器上,不断完善中……

    基于SpringCloud框架开发的商城系统,代码严格按照MVC划分思想,可部署到服务器上,设计精良,不断完善 包结构说明 com.supermarket。*。filter对应于微服务的过滤器 com.supermarket。*。listener对应于微服务的...

    java面试题

    7:Spring MVC:分离模型、视图、控制器、以便更容易定制 折构函数和虚函数? 答:折构函数式销毁一个类的函数,虚函数是为了C++的动态绑定而设计的。 描述你的编程风格? 答:类名首字母大写,常量一般全部大写,...

    Grails权威指南

     3.7.2 打包war存档文件(warcarchive)  3.8 使用grails控制台(console)及命令解释程序(shell)  3.8.1 使用命令行shell  3.8.2 grails控制台(console)  3.9 ide集成  3.9.1 安装groovy...

    网上体育商城的设计与实现毕业设计答辩PPT.pptx

    里面封装了各种拥有私有属性和set/get方法的类,视图(View)相当于人体展示的动作,将数据用控制层提供的方法从模型层中取出来放在视图层中展示出来,控制器(controller) 相当于人体的大脑,封装了各种读取模型层...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    1、 Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和custom tag library构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................

Global site tag (gtag.js) - Google Analytics