框架面试题

文章目录

  • 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

框架面试题_第1张图片

3. 项目中用到的AOP

记录操作的日志,环绕通知+切点表达式实现

4.spring中事务的失效场景

事务失效:参考博客:https://blog.csdn.net/Pastxu/article/details/124531638?
大事务问题:参考博客:https://blog.csdn.net/qq_43141726/article/details/122095669?

框架面试题_第2张图片
框架面试题_第3张图片
框架面试题_第4张图片

5. Bean的生命周期

实例化+初始化

首先通过beanDefinitionReader解析注解的bean的信息,然后放入beanDefinition对象内
框架面试题_第5张图片
框架面试题_第6张图片

6.spring中的循环引用问题

框架面试题_第7张图片
框架面试题_第8张图片
三级缓存可以解决bean初始化过程中的循环依赖问题,不能解决构造方法中的循环依赖问题

一级缓存只有当bean初始化后才能注入,不能解决循环引用问题,
一般对象(不是代理对象)用二级缓存可以解决循环引用问题:框架面试题_第9张图片

使用三级缓存解决循环依赖问题(可以解决代理对象)

框架面试题_第10张图片

构造方法注入导致循环引用解决:懒加载注解,需要的时候再注入,并不是实例化的时候就去注入
框架面试题_第11张图片

7. springMVC的执行流程

jsp阶段:框架面试题_第12张图片
框架面试题_第13张图片

8. springboot自动装配原理

框架面试题_第14张图片

9. 常见注解

框架面试题_第15张图片
框架面试题_第16张图片
框架面试题_第17张图片

10 Mybatis

框架面试题_第18张图片

框架面试题_第19张图片

框架面试题_第20张图片

11 Mybatis一二级缓存

你可能感兴趣的:(面试总结,java,spring,开发语言)