1.导入spring\hibernate\struts等相关jar包
---
2.搭建struts2环境
>---UserAction.java,继承ActionSupport
|-----登录方法
>---struts.xml
|------配置UserAction信息
|------class路径,action指定
>---配置过滤器
|------web.xml,filter
---
3.搭建hibernate环境
>---实体类User.java
|------class路径
|----实体类中的属性映射User.hbm.xml,(启动数据库时会根据其创建表)
>------核心配置文件hibernate.cfg.xml
|------引入映射文件User.hbm.xml
---
4.搭建spring环境
>---核心配置文件bean.xml
|-------
>---配置监听器,使服务器启动时加载
|-------web.xml
|------context指定bean.xml文件位置
|------listener监听器
---
5.struts和spring整合
>---bean.xml
|-------bean:class指定为UserAction类路径,且id命名为userAtion
>---struts.xml
|-------去除class具体路径,改为bean中的id值
---
6.spring和hibernate整合
>---hibernate.cfg.xml
|-------其session-factory中配置数据库的信息去除,放到spring配置文件bean.xml的bean中
>---bean.xml
|-------配置数据库连接池,bean属性指定
|-------创建sessionfactory,bean属性指定
|-------(快捷键:ctrl+shift+t搜索localSessionFacttoryBean),指定id为sessionFatory
|-------bean中property指定localSessionFacttoryBean类文件中dataSource属性
|-------bean中property指定localSessionFacttoryBean类文件中configLocations,value值为hibernate.cfg.xml位置
---
7.完成互相注入关系:
>---创建service类UserService.Java
>---创建接口Interface,UserDao.java
>---创建接口实现类UserDaoImpl.java(创建时Surperclass选择UserDao)
---
8.action里面注入service
>---UserAction.java
|-------①private UserService userService;并生成setter方法注入
>---bean.xml
|-------②通过bean添加UserService类对象,id命名为userSerivice,同5,通过spring统一管理
|-------在bean.xml的UserAction类的对象的bean中通过property指定useService(该名和①一致),ref指定②中id一样,完成注入
---
9.service里面注入dao
>---UserService.java
|-------①private UserDao userDao;并生成setter方法注入
>---bean.xml
|-------②通过bean添加UserDao的【实现类】对象(接口不能new对象 ),id命名为userDaoImpl,同5,通过spring统一管理
|-------在bean.xml的UserServices类的对象的bean中通过property指定userDao(该名和上①一致),ref指定②中id一样,完成注入
---
10.dao里面注入hibernateTemplate
>---UserDaoImpl.java
|-------①private HibernateTemplate hibernateTemplate;并生成setter方法注入
>---bean.xml
|-------②通过bean属性添加HibernateTemplate的对象(class值为该导入包的值),id命名为hibernateTemplate,同5,通过spring统一管理
|-------bean.xml的HibernateTemplate的对象中通过property指定sessionFactory,ref指定为sessionFactory(bean.xml里面的,由于6)
-------在bean.xml的UserDao的【实现类】的对象的bean中通过property指定hibernateTemplate(该名和上①一致),ref指定②中id一样,完成注入
---
11.事务管理器
>---bean.xml
|-------创建事务管理器对象
|-------①创建HibernateTransactionManager(open type窗口查找后复制路径)的对象,指定bean的class值为其路径,id命名为transactionManager
|-------bean.xml的HibernateTransactionManager的对象对象中通过property指定sessionFactory,ref指定为sessionFactory(也可以注入dataSource)
|-------开启事务的注解,指定事务管理器
|-------<tx:annotation-driven transaction-manager="transactionManage"/>
,transaction-manager值与①中id一直,通过其指定事务管理器
|-------在UserService.java类上增加注解@transactional
---
12.测试
>---执行项目,查看有无错误,查看数据库中是否根据bean.xml中的属性创建指定的数据表(sessionfactory创建时生成数据表)