Spring学习_06_Spring中事物属性(XML方式)重要
来源:互联网 发布:巴西黑帮知乎 编辑:程序博客网 时间:2024/06/18 09:04
在Spring中的事务中,xml的配置方式很重要,因为它可以通过一些特殊表达式仅仅是简单设置就可以为所有或者部分业务层的方法加上事务控制。这在业务层逻辑十分复杂,或者业务层方法十分多的时候无意是十分方便的。
下面就将前面的事物配置转到XML中进行配置。首先,删除掉前面的事物控制的annotation。代码如下:
@Service("userService")public class UserService {private UserDAO userDAO; private MsgDAO msgDao;//@Transactional(propagation=Propagation.REQUIRED,readOnly=false)public void add(User user) {userDAO.save(user);Msg msg = new Msg();msg.setLog("a user saved!");msgDao.save(msg);}public UserDAO getUserDAO() {return userDAO;}@Resource(name="userDao")public void setUserDAO(UserDAO userDAO) {this.userDAO = userDAO;}public MsgDAO getMsgDao() {return msgDao;}@Resource(name="msgDao")public void setMsgDao(MsgDAO msgDao) {this.msgDao = msgDao;}}
然后,修改beans.xml中的最后部分:
<bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 定义一个切面,规定使用的事务建议 --><aop:config><aop:pointcut id="business" expression="execution(public * com.zxb.service..*.add(..))"/><aop:advisor pointcut-ref="business" advice-ref="txAdvice"/></aop:config><!-- 定义事务建议 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><!-- 定义事务属性 --><tx:method name="add" propagation="REQUIRED" read-only="false"/><tx:method name="get*" propagation="REQUIRED" read-only="true"/></tx:attributes></tx:advice><!-- 删除这句,事务控制在XML文件中完成。<tx:annotation-driven transaction-manager="transactionManager"/> -->经过测试,事务控制正常。
一个小的知识点:我们插入User的以后,在插入Msg的时候,如果在一个事物里,如果在插入Msg失败了,Msg表中的记录是直接回滚,下次插入的时候,ID还是连续的,但是同一个事务回滚的时候User则是采用的删除方式,下次成功插入数据的时候,ID是不连续的,会跳过插入失败那一次的ID值。
0 0
- Spring学习_06_Spring中事物属性(XML方式)重要
- Spring学习_05_Spring中事物属性
- Spring学习笔记(六)基于xml文件方式配置事物
- Spring学习笔记(六)注解方式配置事物
- spring中事物管理的方式
- 详解spring事物属性
- spring 事物传播属性
- Spring(5.1、基于xml的事物)
- Spring.xml事物配置
- spring(DI)概念、xml方式给属性赋值
- Spring中配置事物注解的方式: @Transactional
- spring 事物学习
- spring事物学习参考
- spring中Bean的xml方式配置学习笔记
- Spring 中事物定义
- Spring中事物管理
- spring使用xml方式配置属性值
- Spring学习(2)--在xml中使用autowire自动装配Bean属性
- android攻城狮学习笔记3/19『个人笔记!非教程!慎入!』
- css01
- 【数位DP】 HDU 3652 B-number
- 数据结构--解决散列冲突,平方探测法
- Tomcat-安装-配置-主要目录介绍
- Spring学习_06_Spring中事物属性(XML方式)重要
- 在仿YP做火车下部弹框(可做公共控件)遇到的release问题
- JVM 各种内存参数设置
- Java并发编程实践(Java concurrency in practice)在线示例学习
- php自动加载+命名空间
- 获取服务器出口IP
- java设计模式之工厂模式
- 解决could not create the java virtual machine问题
- android:3D垂直翻转动画-FlipAnimation