1. 整合原理:
Spring与Struts2整合实际上是将Action对象交给Spring容器来负责创建。
Spring与Hibernate整合就是将sessionFactory交给Spring来负责维护,以及Spring维护session和aop事务。
2. 需要导入的特殊jar包
Hibernate中
java persist api java的持久化规范(接口)
MySQL数据库驱动Struts2中
Struts2整合Spring插件包。需要注意的是,导入这个包以后,每当Struts2在启动时就会寻找spring容器,找不到就会抛出异常。Spring中
整合aop(spring-aop | spring-aspect | aop联盟 | aopweaving)
整合连接池和事务(spring-jdbc | spring-tx | c3p0 | spring-orm)
标签库
3. 单独配置Spring容器
在web.xml中配置
4.配置Struts2
- 基础配置: 在web.xml中配置核心过滤器
2.Struts2和Spring整合 在struts.xml中配置对象工厂交给spring
<constant name="struts.objectFactory" value="spring"/>
常用的整合方案为:Spring负责创建action以及组装依赖属性。 创建一个TestAction类包含一个service属性
在ApplicationContext.xml中配置Action和注入service属性
在struts.xml中配置Action
简单测试。启动Tomcat后打开浏览器输入链接,转发到正确页面就可以了
控制台打印出service的哈希码值即为注入成功
5.配置Hibernate
- 配置C3P0连接池
①配置db.properties配置文件
②在ApplicationContext.xml中配置连接池
2.在ApplicationContext.xml中配置sessionFactory,并将连接池注入sessionFactory
这样子基本的连接就配置好了,下面用个Demo进行测试。 写一个Dao做简单的查询并打印
在ApplicationContext.xml中配置Dao,不要忘记注入sessionFactory,不然会报错
写一个测试类
最后结果。输出了查询结果,基本连接就配置完成了
5.配置aop事务 在ApplicationContext.xml中配置核心事务管理器并打开注解管理事务
写一个简单的Demo试试。 增删改需要事务,所以写了个简单的添加
重点来了 在TestService中进行注解配置事务。
在测试类中运行后输出了Sql语句,aop事务也完成了
6.扩大session作用范围
- 用于避免使用懒加载时出现no-session问题,需要扩大session的作用范围
- 在web.xml中配置filter