文章目录
- 1. spring中的bean是线程安全的吗
- 2. 事务的实现--AOP
- 3. 项目中用到的AOP
- 4.spring中事务的失效场景
- 5. Bean的生命周期
- 6.spring中的循环引用问题
- 7. springMVC的执行流程
- 8. springboot自动装配原理
- 9. 常见注解
- 10 Mybatis
- 11 Mybatis一二级缓存
1. spring中的bean是线程安全的吗
口述:spring中的bean一般都是单例的,当然可以用scope设置,那单例的会其实是存在线程安全问题的,因为对象的单例的嘛,那如果说我定义了一些实例变量啊类变量啊,在多线程的环境下因为这些都是共享变量嘛,涉及到多个线程的读写操作那肯定是有线程安全问题的,从这个意义上来讲的话那就是线程不安全的,当然我们一般是不会这样去写的,一般我们resource啊autowired啊注入的其实都是无状态的类,像service啊dao啊,注入进来我们是不能修改的,那其实从这种角度看的话就是线程安全的,其实我们一般开发不会写这种成员变量,用注解注入的呢又是不可修改的,所以一般是线程安全的。
2. 事务的实现–AOP
3. 项目中用到的AOP
记录操作的日志,环绕通知+切点表达式实现
4.spring中事务的失效场景
事务失效:参考博客:https://blog.csdn.net/Pastxu/article/details/124531638?
大事务问题:参考博客:https://blog.csdn.net/qq_43141726/article/details/122095669?
5. Bean的生命周期
实例化+初始化
首先通过beanDefinitionReader解析注解的bean的信息,然后放入beanDefinition对象内
6.spring中的循环引用问题
三级缓存可以解决bean初始化过程中的循环依赖问题,不能解决构造方法中的循环依赖问题
一级缓存只有当bean初始化后才能注入,不能解决循环引用问题,
一般对象(不是代理对象)用二级缓存可以解决循环引用问题:
使用三级缓存解决循环依赖问题(可以解决代理对象)
构造方法注入导致循环引用解决:懒加载注解,需要的时候再注入,并不是实例化的时候就去注入
7. springMVC的执行流程
jsp阶段:
8. springboot自动装配原理
9. 常见注解