八股文之框架篇(Spring Boot、SSM)

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

不是线程安全的。在并发执行请求的情况下,如果该请求的业务逻辑中存在对单例bean的修改、成员变量的修改,则要考虑线程安全问题,而且Spring并没有提供bean的线程安全策略。在Spring中可以使用@Scope注解来指定bean的生命周期,模式有singleton、prototype、request、session、global session,第一种指定的是单例bean、第二种指定的是多例bean,默认是单例bean。在Spring中的bean大多数是被注入无状态的对象,没有线程安全问题,如果定义了可修改的成员变量,是要考虑线程安全问题的,可以使用多例bean、加锁、ThreadLocal来解决部分问题,最后,尽量不要在bean中定义成员变量。

什么是AOP,项目中有没有使用到AOP

AOP称为面向切面编程,用于那些与业务无关的,却和多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被称为”切面(Aspect)“,减少系统中的重复代码,降低模块之间的耦合度,同时提高了系统的可维护性,常见的使用场景有:记录操作记录、缓存处理、Spring中内置的事务处理(编程式事务、声明式事务)、公共字段的填充等等。

Spring中的事务是如何实现的

本质是通过事务管理器 + 动态代理,对加了@Transaction注解的方法前后进行封装,事务拦截器来拦截方法调用,在执行方法之前开启事务,在执行目标方法后根据执行情况提交或回滚事务,受到AOP支持。

Spring中事务失效的场景有哪些

  1. 异常捕获处理:事务通知只有捕获目标抛出的异常,才能进行后续的回滚处理,如果目标自己处理了异常,事务后续的回滚则不进行,导致事务失效,在这种情况下,如果希望事务不失效,那我们应该让事务感知到异常,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值