SSH框架整合(Spring整合Struts2,和Spring整合Hibernate)
2017-03-28 00:00
381 查看
SSH整合原理:
导包:共40个jar包,其中:40=41-1(重复)
Hibernate5(9):hibernate解压目录/lib/required
struts2.3(14):
struts2解压目录/apps/blank.war(空白项目)
注意:struts2.3与hibernate5中有一个重复的jar包,将较低版本删除。
struts2-spring-plugin-xxx.jar (spring整合struts2),
一旦导入该包,struts2框架启动时就会寻找spring容器。如果找不到将会报错。所以在搭建框架时.如果导 入了该包.需要先配置spring。再配置struts。
spring4(17):
4+2;
spring-jdbc、spring-tx、spring-orm;
C3P0连接池、数据库驱动;
spring-aop、spring-aspects;
aop联盟、aspectJ织入;
spring-test、junit4;
spring-web(让spring容器的创建与项目的启动绑定)
web(1):
jstl.jar
Spring整合Web项目:
在Web项目启动时创建Spring容器,只创建一次原理:spring提供了ApplicationContextListener.。ServletContext对象的创建与销毁监听器。
spring在监听器的监听创建ServletContext对象的方法中,创建了spring容器。
在监听器的销毁方法中关闭spring容器。
换句话讲,就是将spring容器的生命周期与ServletContext进行绑定。
配置监听器&指定配置文件路径:
准备Spring配置文件:
创建applicationContext.xml文件,src目录下,并导入约束(NameSpace)。
Struts2整合Web项目:
编写Action:配置struts.xml:src目录下
配置入口过滤器:
Spring整合Struts2:
整合原理:整合方式1(不使用):Action依然由struts2创建。Action对象中的依赖由Spring注入。
配置常量:
struts.objectFactory=spring,开启使用spring对象工厂
struts.objectFactory.spring.autoWire=name,使用spring容器自动注入依赖属性,根据属性名自动注入 依赖
自动注入属性:属性名与bean的name名一致,spring就可以自动注入属性。
整合方式2:由spring创建action以及组装依赖关系。struts2只负责从spring获取action
配置常量:struts.objectFactory=spring,开启使用spring对象工厂
将Action和Service配置到spring容器:
修改struts2中class属性:
Action中的class属性,填写完整类名,struts2会获得类并创建对象;
填写bean的name,struts2会从spring容器中获取对应的bean name的对象
单独配置Hibernate框架:
先创建实体类和映射文件。主配置文件:必选配置(jdbc、方言)、可选配置(打印..)、导入映射文件。
注意:整合spring不配置current_session_context_class,spring在自己准备的sessionFactory中已经通 过ThreadLocal完成session与线程绑定;
也不配置C3P0连接池,会将C3P0连接池交给spring来管理
测试:配置
将SessionFactory交给Spring管理:
方式1(不使用):配置信息放在hibernate.cfg.xml中,然后在spring配置sessionFactory时,注入 hibernate的配置信息。方式2:省略hibernatecfg.xml,在spring中直接配置:
配置C3P0连接池:
准备db.properties配置文件,键值对存放 数据库信息在spring中读取db.properties:
配置C3P0连接池对象,并引用db.properties中的配置:
将C3P0连接池注入sessionFactory:
将Service配置到Spring容器:
创建Dao对象:在ssh整合环境中,推荐使用hibernate模板对象,HibernateDaoSupport。
将Dao对象交给Spring管理:
创建Service对象
将service对象配置到spring容器中:
测试Service。
AOP事务管理:
配置transactionManager:事务管理配置方式:
注解:
开启注解"开关":
在Service类中使用注解管理事务:
XML:
配置事务通知:
配置切面(织入):
解决懒加载使用时的no-session问题:
首先,Hibernate查询优化:使用懒加载策略效率更高。问题解决:
确保在JSP环境中session处于开启状态。
(Spring已实现)在使用session的service层不关闭session。将session的关闭转移到过滤器的后处理代码 中。
配置过滤器:
未完待续……
相关文章推荐
- 整合Struts2 Spring Hibernate,搭建SSH框架
- SSH框架网上商城项目第1战之整合Struts2、Hibernate4.3和Spring4.2
- SSH框架的整合详解(Struts2 + Spring + Hibernate)
- Struts2,Spring3,Hibernate4整合--SSH框架
- SSH框架整合(Spring整合Struts2,和Spring整合Hibernate)
- Struts2与Spring、Hibernate三者整合的过程示例
- Spring2.5+Struts2+Jpa(Hibernate实现)整合之一
- Spring2.5+Struts2+Jpa(Hibernate实现)整合之四
- Struts2 Spring Hibernate 的简单整合
- struts2 spring3 hibernate3整合
- Struts2 Spring 整合, Spring 使用 configLocation属性 联接hibernate.cfg.xml 找到不Action
- 虚拟数据层:Struts2、Hibernate、Spring整合的泛型DAO
- Struts2整合Spring Hibernate的CRUD的实例
- 最简单的 Struts2 Spring2 Hibernate3 整合 实例
- Struts2、hibernate和spring下载,整合所需jar包
- SSH2(Struts2、Spring3与Hibernate3)的整合
- 虚拟数据层 Struts2、Hibernate、Spring整合的泛型DAO Version 2010.9.27
- MyEclipse下struts2、spring、hibernate整合
- Spring2.5+Struts2+Jpa(Hibernate实现)整合之三
- JSON,Struts2,Spring,Hibernate,Extjs整合应用案例