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创建 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值