框架篇1记录1

本文探讨了Spring中的单例bean线程安全性问题,强调了在特定情况下保证线程安全的重要性。接着介绍了AOP的概念及其在事务管理中的应用,并列举了Spring事务失效的常见场景。还讨论了Spring bean的生命周期、构造方法的循环依赖解决方案以及SpringMVC的执行流程。此外,深入解析了SpringBoot自动配置原理和Spring框架中常见的注解。最后,详细阐述了Mybatis的执行流程、延迟加载和一级二级缓存机制。
摘要由CSDN通过智能技术生成

Spring中的单例bean是线程安全的吗?

不是线程安全的。单例bean虽然交由Spring容器进行管理,对于不同用户,不同请求,分配不同线程时,操作的bean对象是同一个。但是,如果bean对象中有可以修改的变量,比如String name,int age这种可以修改的变量,多线程并发的情况下,SPring是无法保证线程安全的。很简单,你都没有保证线程同步,你保证了什么安全。

最简单的例子就是:抢票!抢票的前提是你还有票卖才行呀,同一张票你不保证线程同步,你直接框框一顿卖,一张票卖给四个人,这是诈骗,得进局子。

通常,我们在项目中使用的Spring bean都是不可变的,不可修改的,比如Service,Dao等,这种情况下我们认为它是线程安全的,但是也仅仅是在这种情况下。

如果涉及上述的可修改,自己保证线程安全,可以考虑将单例bean修改为多例,@Scope("prototype")

什么是AOP,你用过吗?Spring中的事务是怎么实现的?

AOP?小意思。面向切面编程。当然用过,记录操作日志,缓存,SPring实现的事务等。比如记录操作日志,使用的是AOP中的环绕通知和切点表达式。

Spring中的事务本质上是通过AOP来实现的,对方法前后进行拦截,在执行方法之前开启事务,在执行完方法之后根据执行情况来提交或者回滚事务。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值