J2EE Spring + Hibernate + Struts整合及框架事务管理
2011-08-25 15:50
447 查看
J2EE Spring + Hibernate + Struts整合及框架事务管理
SSH整合:
1、 为strust配置加载spring上下文的插件:
在struts-config.xml文件中添加:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
如有多个(有时候有事务的文件),须用逗号分割
使用spring代理struts请求:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
工厂在web.xml中添加加载项及监听:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/trancactionContext.xml,/WEB-INF/applicationContext.xml,/WEB-INF/jsp/sysmgr/applicationContext.xml,/WEB-INF/jsp/wfclient/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2、框架事务管理
通过数据库连接池的数据源:
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/DakarDS</value>
</property>
</bean>
也可以将数据源的信息写在配置文件中,不采用连接池的方式,直接使用DriverManagerDataSource.
大对象处理:
<bean id="oracleLobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
<property name="nativeJdbcExtractor">
<ref local="nativeJdbcExtractor" />
</property>
</bean>
Session工厂:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="lobHandler">
<ref local="oracleLobHandler" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
</props>
</property>
<property name="mappingResources">
<list> <value>com/eshore/dakar/database/entity/certificate/RelateSapCertificateCode.hbm.xml</value>
</list>
</property>
</bean>
事务管理器采用Hibernate事务管理
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
添加事务拦截,需配置事务管理器及事务属性,异常处理回滚操作等,指定所有方法均参与事务,且采用当前事务,遇异常回滚:
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
创建根据BEAN名称来进行事务代理,该BEAN由框架加载,无需设置ID.经过此设置后,所有的涉及事务的类名后缀均需为**Facade及messageContext,securityContext类:
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Facade</value>
<value>messageContext</value>
<value>securityContext</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
SSH整合:
1、 为strust配置加载spring上下文的插件:
在struts-config.xml文件中添加:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
如有多个(有时候有事务的文件),须用逗号分割
使用spring代理struts请求:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
工厂在web.xml中添加加载项及监听:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/trancactionContext.xml,/WEB-INF/applicationContext.xml,/WEB-INF/jsp/sysmgr/applicationContext.xml,/WEB-INF/jsp/wfclient/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2、框架事务管理
通过数据库连接池的数据源:
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/DakarDS</value>
</property>
</bean>
也可以将数据源的信息写在配置文件中,不采用连接池的方式,直接使用DriverManagerDataSource.
大对象处理:
<bean id="oracleLobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
<property name="nativeJdbcExtractor">
<ref local="nativeJdbcExtractor" />
</property>
</bean>
Session工厂:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="lobHandler">
<ref local="oracleLobHandler" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
</props>
</property>
<property name="mappingResources">
<list> <value>com/eshore/dakar/database/entity/certificate/RelateSapCertificateCode.hbm.xml</value>
</list>
</property>
</bean>
事务管理器采用Hibernate事务管理
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
添加事务拦截,需配置事务管理器及事务属性,异常处理回滚操作等,指定所有方法均参与事务,且采用当前事务,遇异常回滚:
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
创建根据BEAN名称来进行事务代理,该BEAN由框架加载,无需设置ID.经过此设置后,所有的涉及事务的类名后缀均需为**Facade及messageContext,securityContext类:
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Facade</value>
<value>messageContext</value>
<value>securityContext</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
相关文章推荐
- SSM框架下利用mybatis-spring.jar整合包,以及利用注解@transactional实现事务管理
- Spring的声明式事务管理(李刚 轻量级javaEE 企业应用实战-三大框架整合开发)
- spring和hibernate框架的整合和事务管理
- Spring框架使用内幕之事务管理以及三大框架整合
- 【JavaWeb-25】事务管理相关知识、手动/半自动/自动管理事务案例、整合Junit、整合Web、spring和hibernate整合、struts2和spring整合
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层
- 【MVC框架整合】之 二:SpringMVC3.2.0+MyBatis3.1.1+Spring3.2.0+atomikos 多个事务管理
- SSM框架——以注解形式实现事务管理
- springmvc+jdbc 声明式事务管理,适用于多种数据库框架
- (一)基于SSH实现员工管理系统之框架整合篇
- Spring事务以及三大框架整合
- Spring JDBC-混合框架的事务管理
- 基于SSH实现员工管理系统之框架整合篇 学习笔记
- spring整合 mybatis 事务管理不生效原因
- Spring整合iBatis之三:从Spring角度看两框架整合(包括事务处理)
- spring与mybatis整合之事务管理
- 关于TbSchedule任务调度管理框架的整合部署
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层
- 基于IdeaIDE的ssm整合框架的maven管理项目,利用映射自动生成dao层,pojo层,mappers层