美文网首页
Spring 注解驱动开发- 事务

Spring 注解驱动开发- 事务

作者: 走在冷风中吧 | 来源:发表于2020-02-05 12:43 被阅读0次
  1. pom.xml 声明事务注解扫描
<tx:jta-transaction-manager/>
  1. Service 层使用注解
    @Transactional 默认 readOnly 属性默认是 false, 表示开始事务
    注解修饰类,表示所有方法采用事务方式, 可以单独注解方法, 是否开启事务
@Transactional(readOnly = true)
@Component("accountService")
public class AccountServiceImpl implements AccountService {

    @Resource
    private AccountDao accountDao;


    @Override
    public void addAccount(AccountBean accountBean) {
        accountDao.addAccount(accountBean);
    }

    @Override
    public List<AccountBean> findAll() {
        return accountDao.queryAll();
    }

    @Override
    @Transactional //单独开启事务, 当出现异常时会进行回滚, 保证数据库的原子性和一致性
    public void transfer(String fromUser, String toUser, double money) {
        accountDao.update(fromUser, -money);
        int u = 2/0;
        accountDao.update(toUser, money);
    }
}
  1. test
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:bean.xml")
public class MyTest01 {

    @Autowired
    private AccountService accountService;


    @Test
    public void test02(){
        accountService.transfer("小明","小李",100);
    }
}

测试结果, 数据未发生变化

相关文章

网友评论

      本文标题:Spring 注解驱动开发- 事务

      本文链接:https://www.haomeiwen.com/subject/okxsxhtx.html