- SSH整合过程
注意:在整合框架,每一大步都要测试,这样容易排查问题,否则出了问题要从头开始
1.导包:
1)先将hibernate中的包全部导入进来 一共是11个 如下:
jpa 注意 10 个包 + 1个驱动包
2).导入Struts2所有包 一共14个
导包过程中,如果发现是同一个包,版本不同一定要将其中之一删除,原则是删除版本低的,
因为版本高的会兼容版本低的
然后再导入struts2和spring整合的包 如下:
一旦导入了这个包,Struts2在启动的时候会自动寻找spring容器,如果没有配置spring,
就会出现异常
3).导入spring的所有包 一共16个
4+2基础的包
2+2 aop
4 c3p0 tx springjdbc 数据库驱动
1 test
1 spring-web包
1 spring -orm包
2.测试spring是否配置成功:
首选创建一个appliContext.xml
导入4个约束:beans contet aop tx
在web.xml中配置监听器
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:applicationContext.xml
3.单独配置struts2
1)先将struts2插件包删除
2)然后书写struts.xml导入约束 书写刚刚的userAction的配置
3)在web.xml中配置struts2的过滤器
4)测试
4.整合spring和struts2
1)将刚刚删除的包导入进来
2)添加常量
3) 有spring管理action(方法有两种)
一:
struts2创建action 有spring 负责struts2的属性注入struts2的配置文件
/index.jsp
spring的配置文件
二:完全交给spring去管理action
在配置action时的class 的属性值改为spring 中的bean的名字
struts2配置文件
/index.jsp
spring配置文件
注意:spring配置action要配置的类的创建模式为多例
5.单独整合hibernate
1)书写实体类和orm数据源文件
2)书写配置文件
3)书写测试类 测试hibernate单独配置成功
测试hibernate
@Test
public void fun(){
Session session = Hibernate.getOpenSession();
Transaction transaction = session.beginTransaction();
User user = new User();
user.setMoney(100);
user.setPsd(123);
user.setName("张二狗");
session.save(user);
transaction.commit();
session.close();
}
6.hibernate和spring的结合
实际上结合的原理是hibernate中的sessionFactory和事务交给spring管理
有两种方案:
1)hibernate中的配置文件,在spring配置文件sessionFactory对象
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
书写测试代码:
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(“classpath:applicationContext.xml”)public class Demo1 { @Resource(name = “sessionFactory”) private SessionFactory sessionFactory;@Test public void fun(){ Session session = sessionFactory.openSession(); User user = session.get(User.class, 3); System.out.println(user); }
2)不使用hibernate配置文件,所有配置写到spring配置文件中:
[html] view plain copy