为了账号安全,请及时绑定邮箱和手机立即绑定
  • 事务操作是操作业务层的; 定义事务的传播行为是为了解决 业务层内部方法互相调用的问题
    查看全部
  • 不同数据库,spring提供了不同事务管理器实现类
    查看全部
  • spring事务管理的3个接口 PlatformTransactionManager平台事务管理器 TransactionDefine事务定义接口 定义隔离级别等 TransactionStatus事务状态接口
    查看全部
    0 采集 收起 来源:接口介绍

    2016-04-22

  • 事务的概念: 指一组逻辑操作,要么都成功,要么都失败 事务的特性: 原子性:一组操作是不可分割的最小单元操作 隔离性:多个事务之间不应该互相影响 持久性:一旦一个事务执行完之后,就永远持久化,执行完之后的数据不再受影响
    查看全部
    0 采集 收起 来源:事务回顾

    2016-04-22

  • 课程目标: 了解事务的概念 spring事务的api spring事务的编程式事务 spring事务的声明式事务
    查看全部
  • 事物的回顾
    查看全部
  • 推荐 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • //相关代码(声明式 I——基于TransactionProxyFactoryBean的方式)——(上): @AccountServiceImpl.java package cn.muke.spring.demo2; /** * 转账案例的业务层实现类 */ 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); } } @SpringDemo2.java /** * Spring的声明式事务管理的方式一的测试类: */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext2.xml") public class SpringDemo2 { /** * 注入代理类:因为代理类进行增强的操作。 */ //@Resource(name="accountService") @Resource(name="accountServiceProxy") private AccountService accountService; /** * 转账案例的测试类 */ @Test public void demo1(){ accountService.transfer("aaa", "bbb", 200d); } }
    查看全部
  • 不推荐:因为一个类就需要一个代理类,N个类呢?! //相关代码(编程式)——(下): <!-- 配置业务层类 --> <bean id="accountService" class="cn.muke.spring.demo1.AccountServiceImpl"> <property name="accountDao" ref="accountDao"></property> <!-- 注入事务管理的模版 --> <property name="transactionTemplate" ref="transactionTemplate"></property> </bean> <!-- 配置DAO层类 --> <bean id="accountDao" class="cn.muke.spring.demo1.AccountDaoImpl"> <!-- 注入连接池,会帮我们创建一个JDBC模版 --> <property name="dataSource" ref="dataSource" ></property> </bean> <!-- 配置事务管理器(操作工具) --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 连接池(被操作对象) --> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置事务管理的模版(简化操作工具)(最终使用它来操作):Spring为了简化事务管理的代码而提供的类 --> <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate"> <property name="transactionManager" ref="transactionManager"></property> </bean> </beans>
    查看全部
  • @不推荐 //相关代码(编程式)——(中): @SpringDemo1.java package cn.muke.spring.demo1; /** * 转账案例的测试类 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class SpringDemo1 { //测试业务层类 @Resource(name="accountService") private AccountService accountService; @Test public void demo1(){ accountService.transfer("aaa", "bbb", 200d); } } @applicationContext.xml <beans ...> <!-- 引入外部的属性文件 --> <context:property-placeholder location="classpath:jdbc.properties"></context:property> <!-- 配置C3P0连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}" ></property> <property name="jdbcUrl" value="${jdbc.url}" ></property> <property name="user" value="${jdbc.username}" ></property> <property name="password" value="${jdbc.password}" ></property> </bean> 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 事务
    查看全部
    0 采集 收起 来源:课程总结

    2016-04-20

  • 配置切面
    查看全部
  • //相关代码(编程式)——(上): @AccountServiceImpl.java package cn.muke.spring.demo1; /** * 转账案例的业务层实现类 */ public class AccountServiceImpl implements AccountService { // 注入转账的DAO的类 private AccountDao accountDao; public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } //注入事务管理模版 private TransactionTemplate transactionTemplate; public void setTransactionTemplate(TransactionTemplate transactionTemplate) { this.transactionTemplate = transactionTemplate; } /** * @param out :转出账号 * @param in :转入账号 * @param money :转账金额 */ public void transfer(final String out, final String in, final Double money) { /*accountDao.outMoney(out, money); int i=1/0;//这样一来,上面可以成功执行,下面就不会得到执行 accountDao.inMoney(in, money);*/ transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) { accountDao.outMoney(out, money); int i=1/0; accountDao.inMoney(in, money); } }); } }
    查看全部
  • 配置业务代理
    查看全部

举报

0/150
提交
取消
课程须知
学习本课程前需要熟悉Spring的基础知识,掌握IOC和AOP的基本概念。小伙伴们可参考《Spring入门》课程
老师告诉你能学到什么?
1、理解Spring事务管理的基本概念 2、掌握Spring事务管理的应用场景 3、掌握声明式事务管理和编程式事务管理的实现方式

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!