所谓ssh整合其实就是用Spring来管理Struts2以及Hibernate,通过依赖注入的方式。
1.整合原理图(对象的依赖关系图)
2.导入jar包
a. 整合web项目的spring-web包
b. Hibernate核心包
c. struts2核心包,以及使用struts2注解时用到的注解包和整合spring用到的struts-spring插件包
d. spring核心包(4+2),以及用到的事务、aop等。。。
e. 数据库驱动及c3p0连接池
(根据个人需要添加对象的jar包)
3. 整合web项目
a. 创建applicationContext.xml 并导入约束 (beans、context、aop、tx)
b. 在web.xml中配置监听器(使用ContextLoaderListener),目的是为了让spring容器跟随项目的启动而创建(因为spring容器要管理,所有的对象,所以他的作用域必须足够大)
4. 整合struts2(spring负责action的创建以及组装)
组装(action中用到的对象,也由spring注入,service层)
a. 开启 spring 对象工厂 (struts.xml)
<constant name="struts-objectFactory" value="spring" />
b. 将action以及action所依赖的对象配置进spring容器中(可以参考文章开头原理图)
<bean name="action" class="类的全限定名" />
<bean name="service" class="类的全限定名" /> (添加进容器后就可以在我们的程序中使用了,可以使用注解的方式,注入进来,这里只给一个演示,演示部分只限以上方式的配置)
c. 这时我们的struts.xml中,action的class属性就不能用原来的方式配置了(既然我们已经将action对象配置到spring容器中了,这时就可以直接用spring中action对象的名字来代替之前的写法)
5.整合hibernate
(将hibernate.cfg.xml中的配置,改写到applicationContext.xml中)
a. 配置c3p0连接池
src目录 db.properties文件
b. 配置sessionFactory
c. 测试
6. 配置AOP事务
a. 事务管理器
b. 事务通知
c. 配置切面(切点合通知)