-
事务的一致性查看全部
-
事物的原子性查看全部
-
事物的七种传播行为: 常用的三种:查看全部
-
spring事务管理查看全部
-
Spring支持两种方式事物管理:查看全部
-
Spring事物隔离级别(四种):查看全部
-
事物管理器PlatformTransactionManager接口:查看全部
-
总结: spring 两种事务管理: *编程式 (很少使用) *声明式 *基于TransactionProxyFactoryBean方式 (很少使用) *基于AspectJ的XML的方式 . *一旦配置好之后,类上不需要添加任何东西。 *基于注释. *配置简单,需要增加@Transactional注释。查看全部
-
@新手推荐先使用XML配置方式(知道其中工作原理),高手推荐使用注解方式,使代码更佳清晰。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
//相关代码(公共2): @applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> </beans> @jdbc.properties jdbc.driverClass=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql:///imooc jdbc.username=root jdbc.password=.查看全部
-
//相关代码(声明式 III——基于注解的方式)——(下): <!-- 配置业务层类 --> <bean id="accountService" class="cn.muke.spring.demo4.AccountServiceImpl"> <property name="accountDao" ref="accountDao"></property> </bean> <!-- 配置DAO层类 --> <bean id="accountDao" class="cn.muke.spring.demo4.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> <!-- 开启注解事务:只有开启这个注解事务,才可以使用注解 --> <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation> </beans> 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
//相关代码(声明式 III——基于注解的方式)——(中): @SpringDemo4.java package cn.muke.spring.demo4; /** * Spring的声明式事务管理的方式三的测试类:基于注解的事务管理方式。 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext4.xml") public class SpringDemo4 { @Resource(name="accountService") private AccountService accountService; /** * 转账案例的测试类 */ @Test public void demo1(){ accountService.transfer("aaa", "bbb", 200d); } } @applicationContext4.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等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
//相关代码(声明式 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); } } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
//相关代码(声明式 II——基于AspectJ的XML方式)——(下): <!-- 配置事务的通知(事务的增强) --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- prop格式: * propagation :事务的传播行为。 * isolation :事务的隔离级别,比如数据库默认级别。 * readonly :只读(不可进行修改、插入、删除操作,否则报错)。 * rollback-for :发生哪些异常回滚事务。 * no-rollback-for :发生哪些异常事务不回滚,继续提交。 * timeout :过期信息。 --> <tx:method name="transf*" propagation="REQUIRED" ></tx:method> </tx:attributes> </tx:advice> <!-- 配置切面 --> <aop:config> <!-- 配置切入点:最前面的 “ * ” 表示:方法任意返回值;AccountService+ “ + ” 表示:AccountService的子类 --> <aop:pointcut expression="execution(* cn.muke.spring.demo3.AccountService+.*(..))" id="pointcut1"></aop:pointcut> <!-- 配置切面 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"></aop:advisor> </aop:config> </beans> 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
举报
0/150
提交
取消