Struts2+Hibernate+Spring整合步骤

1.Spring 整合Hibernate整合什么? 

1.由IOC容器来管理Hibernate的SessionFactory 

2.让Hibernate使用上Spring的声明式事务


2.整合步骤: 

1.加入Hibernate 

1)jar包

2)添加Hibernate配置文件 hibernate.cfg.xml

a.数据源需配置在IOC容器中,不再hibernate.cfg.xml文件中配置

b.关联的.hbm.xml文件也在IOC容器配置SessionFactory实例时进行配置

c.配置hibernate的基本属性,比如方言,sql显示以及格式化,生成数据表的策略,二级缓存

d.编写持久化类对应的.hbm.xml文件

2.加入Spring 

1)jar包

2)加入Spring的配置文件 applicationContext.xml

a.配置数据源

b.导入配置文件 db.properties

c.配置Hibernate的SessionFactory实例(通过spring提供的LocalSessionFactoryBean进行配置)

a)通过dataSource配置数据源属性

b)通过configLocation配置Hibernate配置文件的名称及位置(也可通过hibernateProperties属性把hibernate.cfg.xml文件中的全部配置移过来)

c)通过mappingLocations配置Hibernate映射文件的名称及位置,可以使用通配符

d.配置spring的声明式事务

a)通过HibernateTransactionManager配置事务管理器(一定记得要配sessionFactory)

b)通过<tx:advice/>配置事务属性,需要事务管理器

c)通过<aop:config/>配置事务切点,并把切点与事务属性关联起来

3.整合 

2.Spring 如何在web应用中使用? 

1.需额外加入的jar包:

spring-web-4.1.6.RELEASE.jar

spring-webmvc-4.1.6.RELEASE.jar

2.配置文件跟非web应用的一样 

3.如何创建IOC容器?

1)非web应用在main方法中直接创建

2)web应用应该在web应用被服务器加载时就创建IOC容器

a.在ServletContextListener的initialized(ServletContextEvent sce)的方法中创建IOC容器后,

可以将其放在ServletContext(即application域)的一个属性中。

b.实际上,spring的配置文件的名称与位置应该是可以配置的!所以应该配置到当前web应用的初始化参数比较合适

<context-param>

  <param-name>configLocation</param-name>

  <param-value>applicationContext.xml</param-value>

</context-param>

4.实际上第三步spring已经帮我们解决了,我们只需要在web.xml文件中加入以下配置即可,获取IOC容器可以通过WebApplicationContextUtils对象的getWebApplicationContext(ServletContext sc))方法获取

<listener>  

  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

<context-param>

  <param-name>ContextConfigLocation</param-name>

  <param-value>applicationContext.xml</param-value>

</context-param>


3.Spring 如何整合struts2? 
整合目标:让IOC容器来管理struts2的Action 
整合步骤: 

1.正常加入struts2(struts-2.3.28.1\apps\struts2-blank\WEB-INF\lib下jar包),再到web.xml文件中配置struts2的核心过滤器 

2.在IOC容器中配置struts2的Action时,需要配置scope属性,其值一定要是prototype

<bean id=”personAction” class=”cn.lfd.spring.struts2.action.PersonAction” scope=”prototype”></bean>

3.配置struts2的配置文件:action的节点的class属性要指向IOC容器中的bean的id

<package name=”default” namespace=”/” extends=”struts-default”>

<action name=”personAction” class=”personAction”>

<result>/success.jsp</result>

</action>

</package>

4.加入struts2-spring-plugin-2.3.28.1.jar包 5.整合原理:加入struts2-spring-plugin-2.3.28.1.jar包后,struts2会先从IOC容器中获取Action的实例

如果spring中有 则spring负责创建 如果spring没有 则struts2创建 

发表回复

您的电子邮箱地址不会被公开。

昵称 *