S2SH配置过程 详解(5)
2010-08-20 11:42
246 查看
5.3 整合Struts
Spring与Struts的整合其实就是把Struts的Action类交给Spring来管理,下面开始吧!1)
导入jar包。在Struts2.1.6的lib目录中找到struts2-spring-plugin-2.1.6.jar,引入到工程中。
2)
配置web.xml文件。在web.xml中加入以下代码:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
1)
现在就来看如何把struts的action交给spring。以struts示例中的login.action为例,首先创建一个LoginAction类的Bean。在applicationContext.xml中增加如下代码:
<bean id="loginAction" class="test.action.LoginAction" scope="prototype">
</bean>
这里,我们把这个bean的id设为loginAction。Scope设为prototype,含义是每一次请求创建一个LoginAction类的实例,Scope还有另一个值“singleton”意为“单例模式”。
接下来修改struts.xml文件,把原来login.action的配置做如下修改:
把<action name="login" class=" test.action.LoginAction ">
改为
<action name="login" class="loginAction">
注意到有什么区别了吗?class值设为了loginAction,即LoginAction类的bean的ID。这样我们就把LoginAction类交给了spring管理。至于具体是怎么处理的,秘密在struts2-spring-plugin-2.1.6.jar中,有空自己就去研究吧,现在会用就可以了。
5.4 整合Hibernate
Spring整合Hibernate主要是对hibernate的Session进行管理,包含Session的创建、提交、关闭的整个生命周期。Spring对事务的管理应用了AOP的技术,配置前请先了解一下AOP的知识。1)
配置sessionFactory,让spring来创建Session。在applicationContext.xml中增加如下代码:
<!-- 配置sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:spring/hibernate.cfg.xml</value>
</property>
</bean>
我们原来是用HibernateSessionFactory.java来创建Session的,现在删除即可,交给Spring创建。这里,创建了一个Session工厂类的Bean,其ID为“sessionFactory”。
2)
配置事务管理器。增加如下代码:
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
这里创建了一个id为transactionManager的事务管理器,它匹配一个session工厂,<ref
bean="sessionFactory"/>这个sessionFactory是指session工厂的ID。
3)
对事务管理器进行事务设置。增加如下代码:
<tx:advice id="smAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
这里创建了一个advice(通知),对事务管理器进行事务设置,这里意思是指,对于以save、del、update开头的方法应用事务。
4)
下面就把事务应用到具体的类。看如下代码:
<aop:config>
<aop:pointcut id="smMethod"
expression="execution(* test.service.impl.*.*(..))"/>
<aop:advisor pointcut-ref="smMethod" advice-ref="smAdvice"/>
</aop:config>
这里配置的作用是把我们上面创建的advice应用到具体的类中。以上代码的意思指,给test.service.impl下的所有类的所有方法应用smAdvice。
5)
示例:使用Session。
配置基本完毕了,自己去测试吧,这里就不先写了。
相关文章推荐
- S2SH配置过程 详解(1)
- S2SH配置过程 详解(2)
- S2SH配置过程 详解(3)
- S2SH配置过程 详解(4)
- 全新S2SH配置一步一步过程详解
- 全新S2SH配置一步一步过程详解 转载请注明
- (转)Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)
- 使用HeartBeat实现高可用HA的配置过程详解
- linux系统LVM逻辑卷配置过程详解
- 配置一个Spring Boot应用的过程详解
- 详解spring注解配置启动过程_java
- 《转载》Ubuntu 11.04 LAMP安装配置 + 整合 JSP 全过程详解
- Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载
- 基于Linux网关服务器squid配置过程详解
- u-boot配置和编译过程详解
- WCF分布式开发步步为赢(2)自定义托管宿主WCF解决方案开发配置过程详解
- 自定义托管宿主WCF解决方案开发配置过程详解
- 配置extmail过程详解
- win10下vs2015配置Opencv3.1.0过程详解
- Maven命令详解 模块导入 MyEclipse + Maven开发Web工程的详细配置过程