java八股 spring + mybatis

Spring常用注解(绝对经典)_spring注解-CSDN博客 

框架篇-02-Spring-单例bean是线程安全的吗_哔哩哔哩_bilibili

java八股 spring + mybatis_第1张图片

1.spring.bean 单例 + 线程不安全

java八股 spring + mybatis_第2张图片

java八股 spring + mybatis_第3张图片

java八股 spring + mybatis_第4张图片

2.AOP

java八股 spring + mybatis_第5张图片

项目里可以说记录用户登录日志,利用request去获取姓名、ip、、请求方式、url,时间

java八股 spring + mybatis_第6张图片

java八股 spring + mybatis_第7张图片

java八股 spring + mybatis_第8张图片

 

3.事务失效

深入理解 Spring 事务:入门、使用、原理-腾讯云开发者社区-腾讯云 (tencent.com) 

框架篇-04-Spring-事务失效的场景_哔哩哔哩_bilibili

spring 事务失效的 12 种场景_spring 截获duplicatekeyexception 不抛异常-CSDN博客

3.1 非检查异常被try catch,spring收不到消息

如果一个spring事务里两组数据库操作中间有一个异常操作,没有被try catch的话。那么java代码报错,事务会自动回滚,没问题。

如果把异常try catch处理了,容易导致事务失效,前一段数据库操作做了,异常后面一段没做,直接跳到catch里了。

java八股 spring + mybatis_第9张图片

3.2 抛出检查异常 spring不会回滚

java八股 spring + mybatis_第10张图片

3.3事务方法非public

java八股 spring + mybatis_第11张图片

3.4其他场景

spring 事务失效的 12 种场景_spring 截获duplicatekeyexception 不抛异常-CSDN博客

我项目中类内方法调用事务方法导致事务失效,因为this不被spring管理,要获取上下文代理对象去调用,就能执行事务。

java八股 spring + mybatis_第12张图片

4.bean的生命周期(印象不深)

java八股 spring + mybatis_第13张图片

java八股 spring + mybatis_第14张图片

5.bean的循环引用(类之间互为属性)-->三级缓存

java八股 spring + mybatis_第15张图片

java八股 spring + mybatis_第16张图片

需要对bean生命周期有了解,这里bean只构造出一个半成品,但是没有后面的初始化过程

 java八股 spring + mybatis_第17张图片

java八股 spring + mybatis_第18张图片

一级缓存不能解决,一二级配合可以解决。

把二级缓存半成品A当成对象注入半成品B中,可以先完成一个单例B,这时候A也能完成了

java八股 spring + mybatis_第19张图片

5.1二级缓存解决一般循环引用

java八股 spring + mybatis_第20张图片

 java八股 spring + mybatis_第21张图片

5.2 三级缓存可以解决代理对象循环依赖

java八股 spring + mybatis_第22张图片

5.3构造函数循环引用

java八股 spring + mybatis_第23张图片

你可能感兴趣的:(java,java,spring,mybatis)