欢迎来到天天文库
浏览记录
ID:39325623
大小:375.31 KB
页数:45页
时间:2019-06-30
《用Spring整合其他应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第22章用Spring整合其他应用本章是Spring篇中最为实际和最令人感兴趣的一章。Spring作为J2EE框架一个最重要的目的就是为J2EE开发提供一个简单快速的开发平台,可以很容易的实现J2EE中的每一个实际的需求,如Web开发,连接数据库、远程访问等等,读者会发现Spring是一个非常易用针对性特别强的框架。是实际应用的好帮手。在在前面章节中介绍的AOP和IoC是Spring基础,Spring的其他高级功能都是由此而来的,包括本章介绍的整合功能和其他使用API。如果只想使用Spring提供API来实现功能,也可以而不去探究这些功能是如何实现,一样可
2、以得心应手。这对使用者来说是非常方便的。用什么就学什么,而不必一开始就了解许多知识。22.1集成Struts虽然Spring也提供了独立WebMVC的解决方案。鉴于Struts的Web开发领域的统治地位,很多情况是开放人员中绝大部分对strusts非常熟悉,或者项目的前期已经有Struts实现,那么把Struts与Spring结合就是一个很好的方案。这个方案几乎成为目前国内Web程序开发的必选方案,这也是本书重点推荐和将要介绍的方式。22.1.1概述在Struts的一篇曾经介绍过,Struts经过了一个大跨度的版本升级。最新的版本Struts2其核心代码来
3、源与WebWork,而且Struts2本身已经使用了Spring作为的IoC容器。因此把Sturts2与Spring结合起来当然是非常容易的事情在结构上也非常合理。在Struts.properties文件中如下配置,用来spring作为IoC容器是缺省配置,不要修改它。struts.objectFactory=spring22.1.2添加plugin包将struts2-spring-plugin-2.0.x.jar文件包含到应用中,放到WEB-INF/lib目录下面即可。在这个插件包中有个struts-plugin.xml文件,此外如果action不是使用
4、SpringObjectFactory创建的话,插件提供了两个拦截器来自动装配action,默认情况下框架使用的自动装配策略是name,也就是说框架会去Spring中寻找与action属性名字相同的bean,可选的装配策略还有:type、auto、constructor,可以通过常量struts.objectFactory.spring.autoWire来进行设置。22.1.3修改web.xml文件整合Spring来控制Struts还需要修改一下web.xml文件,让Spring能参与到sevlet的执行中去。(1)配置Spring监听器。将Spring.
5、jar包含到应用中,将下面一段话插入到web.xml文件中,同时将spring.jar文件放到WEB-INF/lib目录下面。org.springframework.web.context.ContextLoaderListener22.1.3修改web.xml文件(2)利用Spring配置文件来注册对象。这之后的步骤就和使用单独使用Spring一样了,现在就已经完成了Struts2与Spring的集成了。这里有一
6、点要注意的是,还要指定Spring配置文件的地点,默认情况下,容器会到WEB-INF目录下面去寻找applicationContext.xml文件。如果想指定别的地方的配置文件或者指定多个配置文件,可以通过在web.xml文件中定义context-param元素来指定,22.1.4把Struts与Spring的配置文件对应起来如上文整合配置完毕之后,就可以把Struts的Action类交给Spring出生成装配了,那么在Spring的IoC容器中就可以利用SpringAOP了。也就是说可以在Action中任意的添加切面和切入点,织入如日志、安全等横向逻辑的
7、逻辑代码。22.1.5高级选项Struts2和Spring能正常的一起工作以后,有几个配置技术点也需要介绍一下,在实际工作中经常会遇到。可以通过设置修改struts.properties中下列属性的值来改变装配模式。struts.objectFactory.spring.autoWire=type还有一项配置是否使用类缓存。可以通过设置修改struts.properties中下列属性的值来改变是否使用Spring自身的类缓存机制。可以设定的值为true或false,默认为true。struts.objectFactory.spring.useClassCa
8、che=false22.2集成Struts1.x鉴于Struts1
此文档下载收益归作者所有