SSH整合
Posted zy-luo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH整合相关的知识,希望对你有一定的参考价值。
1.建项目,导包
Struts2的jar包
struts-2.3.24\\apps\\struts2-blank\\WEB-INF\\lib\\*.jar
struts2-convention-plugin-2.3.24.jar ----Struts2的注解开发包。
struts2-json-plugin-2.3.24.jar ----Struts2的整合AJAX的开发包。
struts2-spring-plugin-2.3.24.jar ----Struts2的整合Spring的开发包。
Hibernate的jar包
Hibernate的开发的必须的包:hibernate-release-5.0.7.Final\\lib\\required\\*.jar
mysql驱动:mysql-connector-java-5.1.21.jar
日志记录:
C3P0连接池:
*****注意:Struts2和Hibernate都引入了一个相同的jar包(javassist包)。删除一个******
Spring的jar包
IOC:
AOP:
其他:
2.Spring整合Struts2
2.1在web.xml中配置Struts2的核心过滤器和Spring的监听器
2.2建包建类
2.3将Action和Service交给Spring管理
需要引入struts-spring-plugin.jar*******************注意一定要把Spring管理的Action配置为多例
2.4struts.xml的配置
因为Action已经交由Spring管理,如果再在struts.xml中创建一个Action就会有两个,所以action标签的class要使用applicationContext.xml(Spring的配置文件)中action类的bean的id,这里通过struts-spring-plugin.jar这个包完成转换
3.Spring整合Hibernate
这种整合方式不需要hibernate.cfg.xml文件,hibernate的配置信息全部在applicationContext.xml中
3.1在applicationContext.xml中引入属性文件并配置连接池
3.2配置sessionFactory以及Hibernate的相关配置
3.3把Dao交给Spring管理并继承HibernateDaoSupport
3.4事务
使用注解事务
4.Hibernate模板的使用
5.解决延迟加载问题
你的客户与联系人之间建立了关系(不管是一对多还是其他),你查询客户的时候想要显示联系人,可能会报no-session的错误,因为session是在Service层创建和销毁的,当你在web层使用某个对象的关联对象时,Hibernate因延迟加载会在这时发送sql语句查询关联对象,可是这时你的session已经关闭,所以就查询不到关联对象。除非你不使用延迟加载,但这样某些情况下性能就会得到降低。所以得把Session的创建和销毁提前到view层,使用过滤器完成操作,这个过滤器必须要写在Struts2核心过滤器之前。、
以上是关于SSH整合的主要内容,如果未能解决你的问题,请参考以下文章