spring 事物配置方式的事物有几种方式

Spring中的声明式事务的几种配置方式
为鼓励上传资源,我们采用积分下载方式,希望您能发布更多更好的资源互相分享
1.上传软件或电子书,源码,资料等,审核后即获2积分;如发布时设了下载需积分,其他用户下载后你将获得相应积分
2.当您首次注册时,可以获送10个下载积分,供您下载资源和熟悉网站下载的使用
3.发现资源有误或其他问题,通过举报按钮反馈后我们将奖励积分
4.您可以在论坛通过发帖等方式获取
5.参加本站可以在有效期内不限次数下载
6.您也(1元=10积分)或
7.我们会不定期举办各种活动,参加活动可以获取积分,请关注下载频道首页公告。
您可能遇到这些“伪问题”:
1.资料无法解压:
请确保所有分卷均下载完毕,如果有未知后缀文件,请搜索相应解压软件;
2.chm文件无内容:
您的电脑锁定了这一文件,请右击文件属性,点击右下方“解除锁定”,关闭文件后再打开;
3.下载不下来:
请尝试重新下载(重新下载不扣积分);
4.杀毒软件报毒:
黑客安全及破解类软件容易报毒,但可正常使用,如担心安全请谨慎使用。
Spring中的四种声明式事务的配置Spring容器中有两种思想很重要,也就是我们常用的Ioc和Aop,如果理解了这两种思想,对于我们学习设计模式和有很大的帮助,美国四人帮(GOF)写的设计模式中,有很多都用到了Ioc的思想。简单的说就是依赖注入的思想。常见的一种情况:如果一个类中要复用另外一个类中的功能时,我们可能会首先想到继承,如果你知道Ioc这种思想的话,我想你不会用继承,你会马上想到把要用到功能抽取出来,在我们要用到的类中只需通过set方法简单的注入就可以了,其实这里用到了对象的组合代替继承,这样不仅避免了单一继承,还很好的实现了松耦合。同时也遵循了面向对象的编程的设计原则:多用组合,少用继承。在这里对于Ioc和Aop这两种思想的好处。我就不介绍了。接下来我要说的是Spring中几种常见的事务配置,是Aop和Ioc的充分体现。
您对本软件有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力
下载地址:
您正在下载:Spring中的声明式事务的几种配置方式
热门最新推荐
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。详解Spring配置事务的五种方式
投稿:lijiao
字体:[ ] 类型:转载 时间:
这篇文章主要为大家详细介绍了Spring配置事务的五种方式,感兴趣的小伙伴们可以参考一下
Spring配置文件中关于事务配置总是由三个组成部分,分别是 DataSource 、TransactionManager& 和 代理机制 这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。
DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager。
具体如下图:
根据代理机制的不同,总结了五种Spring事务的配置方式,配置文件如下:
第一种方式:每个Bean都有一个代理
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"&
&bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation" value="classpath:hibernate.cfg.xml" /&
&property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" /&
&!-- 定义事务管理器(声明式的事务) --&
&bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory" ref="sessionFactory" /&
&!-- 配置DAO --&
&bean id="userDaoTarget" class="com.bluesky.spring.dao.UserDaoImpl"&
&property name="sessionFactory" ref="sessionFactory" /&
&bean id="userDao"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"&
&!-- 配置事务管理器 --&
&property name="transactionManager" ref="transactionManager" /&
&property name="target" ref="userDaoTarget" /&
&property name="proxyInterfaces" value="com.bluesky.spring.dao.GeneratorDao" /&
&!-- 配置事务属性 --&
&property name="transactionAttributes"&
&prop key="*"&PROPAGATION_REQUIRED&/prop&
&/property&
第二种方式:所有Bean共享一个代理基类
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"&
&bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation" value="classpath:hibernate.cfg.xml" /&
&property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" /&
&!-- 定义事务管理器(声明式的事务) --&
&bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory" ref="sessionFactory" /&
&bean id="transactionBase"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
lazy-init="true" abstract="true"&
&!-- 配置事务管理器 --&
&property name="transactionManager" ref="transactionManager" /&
&!-- 配置事务属性 --&
&property name="transactionAttributes"&
&prop key="*"&PROPAGATION_REQUIRED&/prop&
&/property&
&!-- 配置DAO --&
&bean id="userDaoTarget" class="com.bluesky.spring.dao.UserDaoImpl"&
&property name="sessionFactory" ref="sessionFactory" /&
&bean id="userDao" parent="transactionBase" &
&property name="target" ref="userDaoTarget" /&
第三种方式:使用拦截器
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"&
&bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation" value="classpath:hibernate.cfg.xml" /&
&property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" /&
&!-- 定义事务管理器(声明式的事务) --&
&bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory" ref="sessionFactory" /&
&bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor"&
&property name="transactionManager" ref="transactionManager" /&
&!-- 配置事务属性 --&
&property name="transactionAttributes"&
&prop key="*"&PROPAGATION_REQUIRED&/prop&
&/property&
&bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"&
&property name="beanNames"&
&value&*Dao&/value&
&/property&
&property name="interceptorNames"&
&value&transactionInterceptor&/value&
&/property&
&!-- 配置DAO --&
&bean id="userDao" class="com.bluesky.spring.dao.UserDaoImpl"&
&property name="sessionFactory" ref="sessionFactory" /&
第四种方式:使用tx标签配置的拦截器
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"&
&context:annotation-config /&
&context:component-scan base-package="com.bluesky" /&
&bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation" value="classpath:hibernate.cfg.xml" /&
&property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" /&
&!-- 定义事务管理器(声明式的事务) --&
&bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory" ref="sessionFactory" /&
&tx:advice id="txAdvice" transaction-manager="transactionManager"&
&tx:attributes&
&tx:method name="*" propagation="REQUIRED" /&
&/tx:attributes&
&/tx:advice&
&aop:config&
&aop:pointcut id="interceptorPointCuts"
expression="execution(* com.bluesky.spring.dao.*.*(..))" /&
&aop:advisor advice-ref="txAdvice"
pointcut-ref="interceptorPointCuts" /&
&/aop:config&
第五种方式:全注解
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"&
&context:annotation-config /&
&context:component-scan base-package="com.bluesky" /&
&tx:annotation-driven transaction-manager="transactionManager"/&
&bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation" value="classpath:hibernate.cfg.xml" /&
&property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" /&
&!-- 定义事务管理器(声明式的事务) --&
&bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory" ref="sessionFactory" /&
此时在DAO上需加上@Transactional注解,如下:
package com.mktao.spring.
import java.util.L
import org.hibernate.SessionF
import org.springframework.beans.factory.annotation.A
import org.springframework.orm.hibernate3.support.HibernateDaoS
import org.
import com.bluesky.spring.domain.U
@Transactional
@Component("userDao")
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
public List&User& listUsers() {
return this.getSession().createQuery("from User").list();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&&& 根据代理机制的不同,总结了五种Spring事务的配置方式,配置文件如下:
&&& 第一种方式:每个Bean都有一个代理
&?xml version="1.0" encoding="UTF-8"?&&beans xmlns="http://www.springframework.org/schema/beans"&&& xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&&& xmlns:context="http://www.springframework.org/schema/context"&&& xmlns:aop="http://www.springframework.org/schema/aop"&&& xsi:schemaLocation="http://www.springframework.org/schema/beans &&&&&&&&&& http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/context&&&&&&&&&& http://www.springframework.org/schema/context/spring-context-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"&&&& &bean id="sessionFactory"& &&&&&&&&&&& class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&& &&&&&&& &property name="configLocation" value="classpath:hibernate.cfg.xml"&/&& &&&&&&& &property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"&/&&&& &/bean&& &&& &!-- 定义事务管理器(声明式的事务) --&& &&& &bean id="transactionManager"&&&&&&& class="org.springframework.orm.hibernate3.HibernateTransactionManager"&&&&&&&& &property name="sessionFactory" ref="sessionFactory"&/&&&& &/bean&&&& &&& &!-- 配置DAO --&&&& &bean id="userDaoTarget" class="com.bluesky.spring.dao.UserDaoImpl"&&&&&&&& &property name="sessionFactory" ref="sessionFactory"&/&&&& &/bean&&&& &&& &bean id="userDao"& &&&&&&& class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"&& &&&&&&&&&& &!-- 配置事务管理器 --&& &&&&&&&&&& &property name="transactionManager" ref="transactionManager"&/&&&&& &&&&&&& &property name="target" ref="userDaoTarget"&/&& &&&&&&&& &property name="proxyInterfaces" value="com.bluesky.spring.dao.GeneratorDao"&/&&&&&&&& &!-- 配置事务属性 --&& &&&&&&& &property name="transactionAttributes"&& &&&&&&&&&&& &props&& &&&&&&&&&&&&&&& &prop key="*"&PROPAGATION_REQUIRED&/prop&&&&&&&&&&&& &/props&& &&&&&&& &/property&& &&& &/bean&& &/beans&
&&& 第二种方式:所有Bean共享一个代理基类
&?xml version="1.0" encoding="UTF-8"?&&beans xmlns="http://www.springframework.org/schema/beans"&&& xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&&& xmlns:context="http://www.springframework.org/schema/context"&&& xmlns:aop="http://www.springframework.org/schema/aop"&&& xsi:schemaLocation="http://www.springframework.org/schema/beans &&&&&&&&&& http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/context&&&&&&&&&& http://www.springframework.org/schema/context/spring-context-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"&&&& &bean id="sessionFactory"& &&&&&&&&&&& class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&& &&&&&&& &property name="configLocation" value="classpath:hibernate.cfg.xml"&/&& &&&&&&& &property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"&/&&&& &/bean&& &&& &!-- 定义事务管理器(声明式的事务) --&& &&& &bean id="transactionManager"&&&&&&& class="org.springframework.orm.hibernate3.HibernateTransactionManager"&&&&&&&& &property name="sessionFactory" ref="sessionFactory"&/&&&& &/bean&&&& &&& &bean id="transactionBase"& &&&&&&&&&&& class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"& &&&&&&&&&&& lazy-init="true" abstract="true"&& &&&&&&& &!-- 配置事务管理器 --&& &&&&&&& &property name="transactionManager" ref="transactionManager"&/&& &&&&&&& &!-- 配置事务属性 --&& &&&&&&& &property name="transactionAttributes"&& &&&&&&&&&&& &props&& &&&&&&&&&&&&&&& &prop key="*"&PROPAGATION_REQUIRED&/prop&& &&&&&&&&&&& &/props&& &&&&&&& &/property&& &&& &/bean&&&& && &&& &!-- 配置DAO --&&&& &bean id="userDaoTarget" class="com.bluesky.spring.dao.UserDaoImpl"&&&&&&&& &property name="sessionFactory" ref="sessionFactory"&/&&&& &/bean&&&& &&& &bean id="userDao" parent="transactionBase"&&& &&&&&&& &property name="target" ref="userDaoTarget"&/&&& &&& &/bean&&/beans&
第三种方式:使用拦截器
&?xml version="1.0" encoding="UTF-8"?&&beans xmlns="http://www.springframework.org/schema/beans"&&& xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&&& xmlns:context="http://www.springframework.org/schema/context"&&& xmlns:aop="http://www.springframework.org/schema/aop"&&& xsi:schemaLocation="http://www.springframework.org/schema/beans &&&&&&&&&& http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/context&&&&&&&&&& http://www.springframework.org/schema/context/spring-context-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"&&&& &bean id="sessionFactory"& &&&&&&&&&&& class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&& &&&&&&& &property name="configLocation" value="classpath:hibernate.cfg.xml"&/&& &&&&&&& &property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"&/&&&& &/bean&& &&& &!-- 定义事务管理器(声明式的事务) --&& &&& &bean id="transactionManager"&&&&&&& class="org.springframework.orm.hibernate3.HibernateTransactionManager"&&&&&&&& &property name="sessionFactory" ref="sessionFactory"&/&&&& &/bean&&&& &&& &bean id="transactionInterceptor"& &&&&&&& class="org.springframework.transaction.interceptor.TransactionInterceptor"&& &&&&&&& &property name="transactionManager" ref="transactionManager"&/&& &&&&&&& &!-- 配置事务属性 --&& &&&&&&& &property name="transactionAttributes"&& &&&&&&&&&&& &props&& &&&&&&&&&&&&&&& &prop key="*"&PROPAGATION_REQUIRED&/prop&& &&&&&&&&&&& &/props&& &&&&&&& &/property&& &&& &/bean&&&&&& &&& &bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"&& &&&&&&& &property name="beanNames"&& &&&&&&&&&&& &list&& &&&&&&&&&&&&&&& &value&*Dao&/value&&&&&&&&&&&& &/list&& &&&&&&& &/property&& &&&&&&& &property name="interceptorNames"&& &&&&&&&&&&& &list&& &&&&&&&&&&&&&&& &value&transactionInterceptor&/value&& &&&&&&&&&&& &/list&& &&&&&&& &/property&& &&& &/bean&& & &&& &!-- 配置DAO --&&&& &bean id="userDao" class="com.bluesky.spring.dao.UserDaoImpl"&&&&&&&& &property name="sessionFactory" ref="sessionFactory"&/&&&& &/bean&&/beans&
第四种方式:使用tx标签配置的拦截器
&?xml version="1.0" encoding="UTF-8"?&&beans xmlns="http://www.springframework.org/schema/beans"&&& xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&&& xmlns:context="http://www.springframework.org/schema/context"&&& xmlns:aop="http://www.springframework.org/schema/aop"&&& xmlns:tx="http://www.springframework.org/schema/tx"&&& xsi:schemaLocation="http://www.springframework.org/schema/beans &&&&&&&&&& http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/context&&&&&&&&&& http://www.springframework.org/schema/context/spring-context-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"&&&& &context:annotation-config /&&&& &context:component-scan base-package="com.bluesky"&/&&&& &bean id="sessionFactory"& &&&&&&&&&&& class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&& &&&&&&& &property name="configLocation" value="classpath:hibernate.cfg.xml"&/&& &&&&&&& &property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"&/&&&& &/bean&& &&& &!-- 定义事务管理器(声明式的事务) --&& &&& &bean id="transactionManager"&&&&&&& class="org.springframework.orm.hibernate3.HibernateTransactionManager"&&&&&&&& &property name="sessionFactory" ref="sessionFactory"&/&&&& &/bean&&&& &tx:advice id="txAdvice" transaction-manager="transactionManager"&&&&&&&& &tx:attributes&&&&&&&&&&&& &tx:method name="*" propagation="REQUIRED"&/&&&&&&&& &/tx:attributes&&&& &/tx:advice&&&& &&& &aop:config&&&&&&&& &aop:pointcut id="interceptorPointCuts"&&&&&&&&&&& expression="execution(* com.bluesky.spring.dao.*.*(..))"&/&&&&&&&& &aop:advisor advice-ref="txAdvice"&&&&&&&&&&& pointcut-ref="interceptorPointCuts"&/&&&&&&&& &&& &/aop:config&&&&&& &/beans&
第五种方式:全注解
&?xml version="1.0" encoding="UTF-8"?&&beans xmlns="http://www.springframework.org/schema/beans"&&& xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&&& xmlns:context="http://www.springframework.org/schema/context"&&& xmlns:aop="http://www.springframework.org/schema/aop"&&& xmlns:tx="http://www.springframework.org/schema/tx"&&& xsi:schemaLocation="http://www.springframework.org/schema/beans &&&&&&&&&& http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/context&&&&&&&&&& http://www.springframework.org/schema/context/spring-context-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd&&&&&&&&&& http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"&&&& &context:annotation-config /&&&& &context:component-scan base-package="com.bluesky"&/&&&& &tx:annotation-driven transaction-manager="transactionManager"/&&&& &bean id="sessionFactory"& &&&&&&&&&&& class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&& &&&&&&& &property name="configLocation" value="classpath:hibernate.cfg.xml"&/&& &&&&&&& &property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"&/&&&& &/bean&& &&& &!-- 定义事务管理器(声明式的事务) --&& &&& &bean id="transactionManager"&&&&&&& class="org.springframework.orm.hibernate3.HibernateTransactionManager"&&&&&&&& &property name="sessionFactory" ref="sessionFactory"&/&&&& &/bean&&&& &/beans&
此时在DAO上需加上@Transactional注解,如下:
package com.bluesky.spring.import java.util.Limport org.hibernate.SessionFimport org.springframework.beans.factory.annotation.Aimport org.springframework.orm.hibernate3.support.HibernateDaoSimport org.import com.bluesky.spring.domain.U@Transactional@Component("userDao")public&class UserDaoImpl extends HibernateDaoSupport implements UserDao {&&& public List&User& listUsers() {&&&&&&& return&this.getSession().createQuery("from User").list();&&& }&&& &&& }
阅读(1307)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_082',
blogTitle:'SPRING事务管理类型及提供的几种配置方式',
blogAbstract:'
spring提供的事务管理可以分为两类:编程式的和声明式的。编程式的,比较灵活,但是代码量大,存在重复的代码比较多;声明式的比编程式的更灵活。总结如下:
&&& Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。
&&& DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager。
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:6,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 spring 事物方式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信