xml配置文件整合SSH

xml配置文件整合SSH(Spring4/Struts2.3/Hibernate5)

整合原理

将MVC三层对象交由Spring创建与管理.我们配置好需要Spring管理的类后(Spring配置文件或者注解都可以实现),由Spring进行属性注入,本质就是当项目启动后,SpringIOC容器根据我们所配置的类创建反射该类的对象,然后通过构造注入或者属性注入(这里是JavaBean属性注入,不是成员变量,所以类中一定要有setter方法).

对象的依赖关系

  1. Struts2中的核心对象Action(类似于Servlet)依赖于Service对象(泛指业务逻辑类)
  2. Service对象依赖于Dao(数据访问层类)对象
  3. Dao对象依赖于SessionFactory对象
  4. SessionFactory对象依赖于DataSource对象

事物的依赖关系

  1. Service对象中的切点方法需要织入(weaver)事务通知

  2. 事务通知依赖于事务管理器对象

  3. 事务管理器对象依赖于SessionFactory对象

导包

  1. Hibernate依赖包(required)
  2. Struts2依赖包(注意Struts2与Hibernate中的CGLIB包重复请删除低版本的jar包:javassist包)
  3. Struts2整合Spring包:struts2-spring-plugin
  4. Spring包+aop联盟包+aspectj+数据库驱动包+C3P0连接池包

Spring整合web项目

  1. 在src目录下创建applicationContext.xml文件,读取db.properties配置文件,配置数据库连接池信息(Spring配置文件)

  2. 在项目的web.xml配置文件中配置Spring启动监听器,类名ContextLoaderListener(使得在项目启动时创建IOC容器)

搭建Struts2

  1. 准备Action类(这里我们继承ActionSupport类完成)
  2. 在src目录下创建struts.xml文件,配置Action
  3. 在web.xml中配置Struts2的核心过滤器,类名StrutsPrepareAndExecuteFilter(注意这个过滤器要放在其它过滤器之后,因为过滤器的执行顺序就是按照你配置的顺序执行的)

Spring整合Struts2

  1. 在struts.xml中配置常量<constant name="struts.objectfactory" value="spring" />,将struts2中的对象Action交由Spring管理
  2. 在Action中添加Service属性,并将Action与Service实现类注入Spring
  3. 将struts.xml中的action标签的class属性值修改为applicationContext.xml中Action注入配置的name属性值

搭建Hibernate

  1. 创建实体类

  2. 在实体类包路径下创建"实体类名.hbm.xml"文件,配置实体类对象关系映射文件

  3. 在src目录下创建hibernate.cfg.xml主配置文件(数据库方言/SQL语句显示与格式化/引入映射配置等)

Spring整合Hibernate

  1. 在applicationContext.xml文件中配置如下,读取hibernate主配置文件

准备Dao并注入Spring容器(略)
配置AOP事务

  1. 在applicationContext.xml配置事务管理器,Hibernate事务管理器实现类:hibernateTransactionmanager 

  2. 在applicationContext.xml配置事务通知

  3. 在applicationContext.xml配置切面

完成(还有个no-session问题,请在web.xml中配置OpenSessionInViewFilter)

猜你喜欢

转载自blog.csdn.net/flydoging/article/details/81073385