Spring 事务简化配置(转)
来源:互联网 发布:淘宝联盟要交钱吗 编辑:程序博客网 时间:2024/06/04 17:24
转载自JavaEye ,原文链接: http://www.javaeye.com/article/19317
在 spring 中, 事务管理一般是通过声明一个 txProxyTemplate, 然后业务 bean 中 parent = "txProxyTemplate", 这样做未免显得有些繁琐, 并且如果业务 bean 还需要其他拦截器, 配置也不太方便, 下面贴出我的配置, 用 DefaultAdvisorAutoProxyCreator 实现自动代理
代码
- <beans>
- <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
- <bean id="transactionManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory">
- <ref bean="sessionFactory"/>
- </property>
- </bean>
- <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
- <property name="transactionManager" ref="transactionManager"/>
- <property name="transactionAttributeSource">
- <value>
- com.skyon.user.manager.UserManager.*=PROPAGATION_REQUIRED
- #Add new defines here ->
- </value>
- </property>
- </bean>
- <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
- <property name="interceptorNames">
- <list>
- <value>transactionInterceptor</value>
- <!--
- 增加新的 Interceptor
- -->
- </list>
- </property>
- </bean>
- <bean class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
- <property name="transactionInterceptor" ref="transactionInterceptor"/>
- </bean>
- </beans>
这里利用 DefaultAdvisorAutoProxyCreator 实现了对容器中所有 bean 的自动代理, 增加一个需要事务的业务 bean 时只要在 transactionInterceptor 增加一行即可, 增加别的 interceptor 也非常方便,
极大减少了配置量
- Spring 事务简化配置(转)
- Spring 事务简化配置
- Spring 事务简化配置
- 简化spring的事务配置
- Spring配置事务管理和简化事务配置
- Spring事务支持:利用继承简化配置
- spring 事务代理创建及简化事务配置
- spring 事务代理创建及简化事务配置
- jave ee 5下spring 事务的简化配置
- jave ee 5下spring 事务的简化配置
- Spring配置简化
- Spring简化配置
- spring注解简化配置
- Spring基本配置、注释与简化配置介绍(转)
- 简化spring中的事务管理配置
- 简化spring中的事务管理配置
- Leopard标签简化Spring配置
- Leopard标签简化Spring配置
- 4%中的Tapestry
- 转贴:历史上最强的sql FAQ for Oracle
- 请转到我的baidu空间阅读.
- 使用Asterisk作为H.323和SIP网关
- Java内部类总结
- Spring 事务简化配置(转)
- XMLBeans 2.0
- Asterisk PBX 配置文件 - 1
- 今天为IT168独家供稿发布:《WPF,将颠覆的设计世界?》
- CSS学习笔记-附加篇( 新浪大通栏Tab样式)
- dbca issue
- Asterisk PBX 配置文件 - 2
- 计算视频文件(包含PCR)播放带宽的方法
- 欢迎大家访问影视海洋网!
完整版来叻!!
配置Spring,针对Service层的bean做事务处理,以往的做法是这样:
以后,如果增加新的Service/Manager,则XML配置的增量是这一段:
上面说的是老的做法,比较传统。缺点是增量比较大,配置起来copy&paste让人觉得不太爽,比较臃肿。
下面的是Feiing给出的更好的方案,我有一些修改:
以后每次的增量是这一段:
跟配置普通bean的方法一样,非常简洁、直观。
我把Feiing的transactionAttributesSource改成叻transactionAttributes,并且将DefaultAdvisorAutoProxyCreator改成了BeanNameAutoProxyCreator,我觉得毕竟不是context下的每个bean都需要事务,只要在Service层做AOP就可以叻。
和Robbin一致认为,Feiing的做法非常可取.