版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Spring与Struts、Hibernate的集成本章目标掌握Spring与Hibernate的集成掌握Spring与Struts的集成掌握声明式事务本章简介前面我们学习了Spring“依赖注入”和“面向方面编程”的原理和简单应用。这些技术怎样用到我们的项目中呢?本章我们就以租房系统中的用户模块为例,学习如何使用Spring简化DAO层代码、与Hibernate集成、管理依赖关系和管理事务。还要掌握Spring与Struts1的集成,Spring与Struts2的集成将在上机部分讲述。使用Spring重新组装Web程序使用Spring管理依赖关系我们的程序依赖关系是这样的:Action依赖Biz,Biz依赖DAO,DAO依赖SessionFactory,SessionFactory依赖DataSource。如果使用Spring管理这些依赖关系,注入的方向刚好与依赖的方向相反Spring与Struts1集成我们知道,在Struts1中Action类的实例是由Struts创建的。如果要使用Spring管理Action对Biz的依赖,那么Action类就要由Spring来创建。那么,我们怎么对Struts说“Spring已经把ActionBean创建好了,拿过去用就可以了”呢?Struts可以以插件的方式扩展,我们利用Spring提供的ContextLoaderPlugln插件即可做到Spring和Struts无缝集成。具体的步骤如下:Spring与Struts1集成在Struts配置文件中配置插件在struts-config.xml中,需要把Spring配置文件的位置告知插件。classpath:applicationContext.xml表示到classpath下去找applicationContext.xml文件。如果Spring配置文件放在/WEB-INF/下,可以这样配置:value="/WEB-INF/applicationContext.xml"。如果有多个Spring配置文件,可以用逗号隔开,同时配置多个路径,如:value="/WEB-INF/applicationContext.xml,/WEB-INF/action.xml"。将Struts配置文件中所有Action类的type属性值都配置为“org.springfranqework.web.struts.DelegatingActionProxy”类型在Spring配置文件中配置UserAction,如示例代码11-10所示,注意这里<bean>没有id属
性了,而是name属性,而且name属性的值要与Struts配置中相应ActionBean的path属性一致。
另外一个做法是将业务逻辑放到DAO层实现,DAO层依据业务逻辑创建方法,编写复杂的业务逻辑处理代码,这样进行架构设计的系统很快就会尝到苦果。当参加项目的人员达到一定数量,或者项目开发周期到一定时间,或者项目维护到一定时间的时候,人们发现这些系统的代码已经变得千头万绪了,剪不断,理还乱。在软件生产大工厂时代,质量是软件的生命线,是客户源源不断的重要保障,是大把大把人民币的重要前提,是免于周末加班,凌晨两点被电话吵醒,不得不去紧急解决客户问题的护身符,是看着别人瞎忙半个月也平不了一张报表,自己却可以悠闲地品口香茶、翻两页闲书时心头暗存的侥幸。一定要随时保证你的软件逻辑清晰、规范易读。不要抱着侥幸的心理破坏规矩。概念完整性说起来很玄虚,但当你违背它的时候,它的反面就会变得形象而具体。声明式事务key表示匹配方法的“模式”,可以使用“*”通配符,例如,“add*”表示这条属性应用于add开头的方法。属性的值为PROPAGATION_REQUIRED,表示当前方法必须运行在一个事务环境中。如果一个现有事务正在运行中,该方法将运行在这个事务中,否则,就要开始一个新的事务。可选的值如下:PROPAGATION_MANDATORY,表示当前方法必须运行在一个事务上下文中,否则就抛出异常。PROPAGATION_NEVER,表示当前方法不应该运行在一个事务上下文中,否则就抛出异常。PROPAGATION_REQUIRESNEW,表示当前方法必须运行在自己的事务里。PROPAGATION_SUPPORTS,表示当前方法不需要事务处理环境,但如果有一个事务正在运行的话,这个方法也可以运行在这个事务里。Spring声明事务的方式Spring对分布式事务的配置方法进行了升级。配置过程更容易理解,而且我们可以在保持示例代码11-7配置代码不变的基础上给UserBizBean的方法增加事务支持。首先,我们要升级项目中Spring的版本:。添加Spring2.5的jar包,包括springjal、aspectjrt.jar、aspectjweaver.jar和cglibnodep-2.1_3jar。修改Spring配置文件,增加常用命名空间的声明,总结Spring为Hibernate开发提供了良好的支持,可以大大简化Hiberante的编码。
在Spring配置文件定义dataSource、SessionFactory再注入DAO中是开发中常用的做法。Spring依赖
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年耳鼻喉多选模拟试题(含答案)
- 唐县冉灏新能源开发有限责任公司介绍企业发展分析报告模板
- 2026年老员工模拟题及答案详解
- 2026年顺丰培训后考试模拟题及答案详解
- 2026年大学计算机c语言上机模拟试卷(含答案)
- 河北权艺橡塑制品有限公司介绍企业发展分析报告模板
- 中国1,2,4-丁三醇行业市场前景预测及投资价值评估分析报告
- 2026年外企进厂考试模拟题及答案详解
- 邢台摩派机械制造有限公司介绍企业发展分析报告模板
- 2026年(半导体研发设计工程师)半导体研发设计工程模拟试题(含答案)
- 理解当代中国 大学英语视听说教程1(拓展版) 课件 B1U2 Planting seeds,harvesting the future
- 2025年高校二级学院教学管理笔试真题(附答案)
- 新时代陕西省立德树人工作指南细则
- 2026年针灸推拿医师高频面试题包含详细解答
- 《鸦胆子油乳注射液治疗消化道恶性肿瘤临床应用专家共识-公示稿》
- dbj41现浇混凝土内置保温墙体技术规程
- 深度解析(2026)《HJT 81-2001畜禽养殖业污染防治技术规范》
- 化学检验员高级工练习题库含参考答案
- (2026)急危重症患者的早期识别与评估课件
- 注意缺陷多动障碍(ADHD)法律能力评估与支持方案
- 仓储安全应急预案
评论
0/150
提交评论