new applicationContext(); ----> new BeanA(); ——>剖析@autowired----->去容器中获取BeanB(容器容器中没有B,创建B)----> ----> new BeanB(); ——>剖析@autowired----->去容器中获取BeanA(容器容器中没有A,创建A)---->循环执行......
题目的根本Bean要经过依赖注入完(剖析@autowired之后)后才会放到spring容器
办理
1.在配置文件中放开循环依赖的限制
# 放开循环依赖的限制
#spring.main.allow-circular-references=true
复制代码
2.代码计划层面:
a. 把依赖的方法, 直接写在本类中,断绝其中一方依赖关系
b. 添加一个中间类, 中间类去依赖A、B, 然后让中间类去组织他们的依赖方法。
3.耽误注入
a.添加需要依赖的构造函数参数
b.添加@Lazy注解
ACID四大特性
A 原子性:原子性指的是 在一组业务操纵下 要么都乐成 要么都失败
在一组增编削查的业务下 要么都提交 要么都回滚
C 同等性:事务前后的数据要保证数据的同等性
在一组的查询业务下 必须要保证前后关联数据的同等性
I 隔离性:在并发情况下 事物之间要相互隔离。
D 恒久性:数据一旦保存就是恒久性的。
5.2 使用@Transactional注解