Spring常用注解(绝对经典)_spring注解-CSDN博客
框架篇-02-Spring-单例bean是线程安全的吗_哔哩哔哩_bilibili
1.spring.bean 单例 + 线程不安全
2.AOP
项目里可以说记录用户登录日志,利用request去获取姓名、ip、、请求方式、url,时间
3.事务失效
深入理解 Spring 事务:入门、使用、原理-腾讯云开发者社区-腾讯云 (tencent.com)
框架篇-04-Spring-事务失效的场景_哔哩哔哩_bilibili
spring 事务失效的 12 种场景_spring 截获duplicatekeyexception 不抛异常-CSDN博客
3.1 非检查异常被try catch,spring收不到消息
如果一个spring事务里两组数据库操作中间有一个异常操作,没有被try catch的话。那么java代码报错,事务会自动回滚,没问题。
如果把异常try catch处理了,容易导致事务失效,前一段数据库操作做了,异常后面一段没做,直接跳到catch里了。
3.2 抛出检查异常 spring不会回滚
3.3事务方法非public
3.4其他场景
spring 事务失效的 12 种场景_spring 截获duplicatekeyexception 不抛异常-CSDN博客
我项目中类内方法调用事务方法导致事务失效,因为this不被spring管理,要获取上下文代理对象去调用,就能执行事务。
4.bean的生命周期(印象不深)
5.bean的循环引用(类之间互为属性)-->三级缓存
需要对bean生命周期有了解,这里bean只构造出一个半成品,但是没有后面的初始化过程
一级缓存不能解决,一二级配合可以解决。
把二级缓存半成品A当成对象注入半成品B中,可以先完成一个单例B,这时候A也能完成了
5.1二级缓存解决一般循环引用