继续总结
-
VUE数据修改后,页面或者样式未生效
主要是因为数据层次过深,没有触发render函数进行自动更新,需手动调用this.$forceUpdate(); -
@Transactional 注解,当方法出现异常时未生效
有几种情况会出现事务未生效的状况-
方法上使用了 @Transactional 注解,在方法中捕获了异常,没有抛出。例如方法B出现异常时,方法A依然会插入入库
@Transactionalpublic void insert(){try {TestPO testPO = new TestPO();testPO.setName("测试1");//方法A demoMapper.insert(testPO);//方法B testService.batchInsert();} catch (Exception e) {e.printStackTrace();}} -
controller调用service层方法A时,方法A上未加@Transactional 注解,方法A调用了 加了@Transactional 注解的方法B
controller层
`public void insert(){
service.methodA();}`
service层
public void methodA(){
methodB();}
@Transactional public void methodB(){ mapper.insert(); }这种情况注解也不会生效,原因主要是因为在SpringIoC容器中返回的对象是代理对象而不是真实的对象
只有被动态代理的对象在调用时才会产生事务。
这里的methodB()就等于this.methodB()调用的是真实的对象,不是Spring管理的代理对象。
若还是想通过methodA() 调用 methodB() 可以使用public void methodA(){((当前类名)AopContext.currentProxy()).methodB()} -