框架面试题

发布时间:2023年12月25日

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. 常见注解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10 Mybatis

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

11 Mybatis一二级缓存

文章来源:https://blog.csdn.net/qq_51240148/article/details/135201648
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。