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连接池:
  技术图片
   *****注意:Struts2Hibernate都引入了一个相同的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整合的主要内容,如果未能解决你的问题,请参考以下文章

SSH框架整合配置所需JAR包(SSH整合)

SSH整合

ssh整合

SSH整合

ssh框架整合shiro权限

Spring 4 : 整合 SSH