springboot项目循环依赖、@Lazy、乐观锁、悲观锁

springboot项目循环依赖
方法一:在你的配置文件中,在互相依赖的两个bean的任意一个加上lazy-init属性。
方法二:在你注入bean时,在互相依赖的两个bean上加上@Lazy注解

@Autowired     

@Lazy      

private ClassA classA; 
    

@Autowired 

@Lazy      

private ClassB classB;  

以上两个方法都能延迟互相依赖的其中一个bean的加载,从而解决循环依赖的问题

乐观锁:
查询一条数据的时候,会先去查询版本号,比如版本号为1
执行操作会带上这个版本号
如果相同,等于1,执行操作。如果不同,执行失败。

如果此时,有另一条数据先执行了,版本号变为2,
那么上面执行时,版本号就不是1了,上面执行就会失败

要是没有加锁,当线程1执行的时候就会把线程2的值覆盖。

线程1给一条数据进行操作,查询数据的时候会带上version版本号(假定为1),
操作的时候会进行比对,如果版本号为1,执行操作。否则操作失败。

悲观锁:关系型数据库里边就有很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值