为什么要让Struts2与Spring进行整合呢?它们整合的原理又是什么呢?

Struts2与Spring进行整合的根本目的就是要让 Spring为Struts2的Action注入所需的资源对象,它们整合的原理则是只要导入了struts2的spring插件包,不需要进行任何额外的配置,Struts2的Action实例对象将由struts2的spring插件创建,该插件会按照Action的属性名称自动从spring容器中查找相同名称的bean对象对Action进行装配, 显然,Struts2的spring插件需要获得spring容器对象,这个spring容器对象是谁创建出来?Struts2的Spring插件又是如何获得Spring容器的呢?在web开发方面,Spring除了提供自己的spring mvc这个web框架之外,它也为web开发提供了最基本的支持,以便在不使用spring mvc的web环境下使用spring,这就是通过 org.springframework.web.context.ContextLoaderListener创建出 WebApplicationContext容器对象, 并将创建出来的WebApplicationContext对象存储进了Web应用程序的application作用域中,存储时的key为 WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE这个常量表示的字符串,以后在Web应用程序中就可以使用 application.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE) 语句, 或Spring提供的工具方法 WebApplicationContextUtils.getWebApplicationContext(application)来获得 spring容器对象。ContextLoaderListener使用contextConfigLocation这个ServletContext初始化参数来指定WebApplicationContext容器对象的配置文件,如果没有配置contextConfigLocation这个 ServletContext的初始化参数,ContextLoaderListener则默认使用/WEB-INF /applicationContext.xml作为配置文件。 为了简便,我们这里采用默认的配置文件,所以,不需要配置contextConfigLocation这个ServletContext的初始化参数,只需要保证spring配置文件的路径和名称为/WEB-INF/applicationContext.xml即可。为了以后能轻松编写出spring整合hibernate的配置文件,最好的办法还是在已有的配置文件基础上进行修改,所以,我们就直接将petclinic的WEB-INF目录下的 applicationContext-hibernate.xml文件拷贝进自己的web项目中, 并改名为applicationContext.xml,然后参照petclinic的web.xml的内容修改自己的web项目中的web.xml文件,即将petclinic的web.xml文件中的如下一段内容复制到自己的web.xml文件中: 
<listener> 
<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class> 
</listener>
 http://bbs.csdn.net/topics/390470817

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值