-
获取切入点方法运行异常信息
-
- 抛出异常后通知
- 环绕通知
- 抛出异常后通知
- AOP通知获取参数数据 (实例见D:\JavaSSM阶段源代码\spring_22_aop_advice_data)
注意:
- 使用@Around注解的在方法形参处使用ProceedingJoinPoint pjp
- 使用其他注解的在方法形参处一律使用JoinPoint jp。拿到以后就可以使用getArgs()方法拿到一个对象数组,里面就是我们需要的参数
注意:
- 对于@AfterReturning注解直接在注解后面的括号中加上returning属性,传入方法形参中的名称来获取返回值数据
- 对于@Around注解,调用完proceed()方法就可以获得返回值数据
具体代码及用法如下:
案例:百度网盘密码数据兼容处理
(实例见D:\JavaSSM阶段源代码\spring_23_case_handle_password)
AOP总结 -------------------------
1.27 Spring事务简介
- Spring事务简介
- 事务作用:在数据层(impl层)保障一系列的数据库操作同成功同失败。保证操作一致性
- Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败
- PlatformTransactionManager接口称为平台事务管理器,提供了提交和回滚方法
- DataSourceTransactionManager是上面这个接口的实现类,内部用的是jdbc的事务
- 案例:银行账户转账
(实例见D:\JavaSSM阶段源代码\spring_24_case_transfer)
步骤:
使用@Transactional注解开启Spring的事务管理
注意:
@Transactional可以写在接口类上、接口方法上、实现类上和实现类方法上
- 写在接口类上,该接口的所有实现类的所有方法都会有事务
- 写在接口方法上,该接口的所有实现类的该方法都会有事务
- 写在实现类上,该类中的所有方法都会有事务
- 写在实现类方法上,该方法上有事务
- 建议写在实现类或实现类的方法上
@EnableTransactionManagement
名称 | @EnableTransactionManagement |
类型 | 配置类注解 |
位置 | 配置类定义上方 |
作用 | 设置当前Spring环境中开启注解式事务支持 |
@Transactionnal
名称 | @Transactional |
类型 | 接口注解 类注解 方法注解 |
位置 | 业务层接口上方 业务层实现类上方 业务方法上方 |
作用 | 为当前业务层方法添加事务(如果设置在类或接口上则类或接口中的所有方法均添加事务) |
1.28 Spring事务角色
-
事务角色
-
- 事务管理员:发起事务方,在Spring中通常指代业务层开启事务的方法
- 事务协调员:加入事务方,在Spring中通常指代数据层方法,也可以是业务层方法
- 事务管理员:发起事务方,在Spring中通常指代业务层开启事务的方法
1.29 事务相关配置
- 事务配置(实例见D:\JavaSSM阶段源代码\spring_25_case_transfer_log)
具体代码及用法如下:
Spring的事务只会对Error异常和RuntimeException异常及其子类进行事务回滚,其他的异常类型是不会回滚 ,需要我们自己手动添加事务回滚
- 案例:转账业务追加日志(实例见D:\JavaSSM阶段源代码\spring_25_case_transfer_log)
步骤:
- 事务传播行为