-
spring事务管理查看全部
-
Spring测试: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:xxx.xml") @Resource(name="") Spring事务:逻辑上的一组操作,要么全部成功,要么全部失败 Spring事务管理的一组API Spring的编程式事务管理(事务管理模板) 1.在实际运用中很少使用 2.通过TrasactionTemplate手动管理事务 1.在AccountService中使用TransactionTemplate 2.TransactionTemplate依赖DataSourceTransactionManager 3.DataSourceTransactionManager依赖DataSource构造 (事务管理器有了连接池才能获得链接进行事务管理) Spring的声明式事务管理(重点) 1.开发中推荐使用(代码入侵性最小) 2.Spring的声明式事务是(通过AOP实现的) 第一种:基于代理TransactionProxyFactoryBean; 注入:目标,事务管理器,事务属性: 1.PROPAGATION :事务的传播行为 2.ISOLATION :事务的隔离级别 3.readOnly :只读,(不可以进行修改,插入,删除) 4.-Exception :发生那些异常回滚事务 5.+Exception :发生那些异常事务不回滚 第二种:基于AspectJ的XML方式(aspectJ的话,就是分的更加的详细,切入点(类),切入面(方法)) 1.配置事务的通知<tx> 2.配置切面,切点<aop> 第三种:基于注解的方式 1.开启事务<tx:annotation-driven transaction-Manager="" /> 2.service类@Transactional(name=value)查看全部
-
//相关代码(声明式 III——基于注解的方式)——(上): @AccountServiceImpl.java package cn.muke.spring.demo4; /** * 转账案例的业务层实现类 */ /** * propagation :事务的传播行为。 * isolation :事务的隔离级别,比如,Isolation.DEFAULT:数据库默认级别。 * readonly :只读(不可进行修改、插入、删除操作,否则报错)。 * rollback-for :发生哪些异常回滚事务。 * no-rollback-for :发生哪些异常事务不回滚,继续提交。 * timeout :过期信息。 */ @Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED) public class AccountServiceImpl implements AccountService { // 注入转账的DAO的类 private AccountDao accountDao; public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } /** * @param out :转出账号 * @param in :转入账号 * @param money :转账金额 */ public void transfer(String out, String in, Double money) { accountDao.outMoney(out, money); int i=1/0;//这样一来,上面可以成功执行,下面就不会得到执行 accountDao.inMoney(in, money); } }查看全部
-
声明事务管理方式一:查看全部
-
事务传播行为查看全部
-
事务隔离级别查看全部
-
事物传播行为查看全部
-
事物隔离级别(四种)查看全部
-
在doInTransacationWithoutResult()中实现事务的操作。 注意:new TransactionCallbackWithoutResult()为匿名内部类,调用外部变量需要将外部变量定义为final。查看全部
-
业务层accountService注入事务管理模板(xml中)查看全部
-
业务层实现类注入事务管理模板查看全部
-
编程式的事务控制查看全部
-
转账案例环境准备--applicationContext.xml配置查看全部
-
转账案例环境准备--业务层注入dao查看全部
-
转账案例环境准备--DAO代码查看全部
举报
0/150
提交
取消