版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Spring高频面试题及真实口语化答案说明:所有答案均为职场面试口语版本,精简、落地、无空话,贴合Java后端真实面试场景,适合直接背诵。1.简单说说你对Spring的理解?Spring是一个轻量级的Java开发框架,核心目的就是简化Java开发,帮我们管理对象、解耦业务代码,不用自己手动new对象、维护对象依赖。它最核心的两个点就是IOC和AOP,除此之外还提供了事务管理、整合各种框架、工具类等能力,也是SpringBoot、SpringCloud的基础框架。2.什么是IOC?原理是什么?IOC就是控制反转,简单说就是把对象的创建、管理、依赖注入的权力,从代码手里交给Spring容器。以前是我们自己在代码里new对象、传依赖,控制权在程序;现在是Spring容器主动帮我们创建对象、装配依赖,控制权反转了。底层原理主要是:读取配置(注解/XML)+反射创建对象+单例池缓存+依赖注入。3.IOC容器的初始化流程了解吗?大致分为这几步,面试不用讲太细,说核心流程就行:1.容器启动,加载配置类/配置文件,扫描所有带注解的Bean;2.解析Bean定义,把所有Bean的信息存到Bean定义注册表;3.优先创建非懒加载的单例Bean,通过反射实例化;4.填充Bean的属性,完成依赖注入;5.执行Bean的初始化方法(前置处理、init方法、后置处理);6.完整Bean存入单例池,供后续直接获取使用。4.依赖注入的几种方式?推荐哪种?三种注入方式:1.字段注入:@Autowired直接注在属性上,写法简单,但容易导致循环依赖、耦合高,不推荐;2.setter注入:适合可选依赖,参数非必须的场景;3.构造器注入:Spring官方推荐。推荐构造器注入,原因:保证对象初始化完成后依赖一定存在、避免空指针、方便单元测试、能有效规避大部分循环依赖问题。5.SpringBean的作用域有哪些?默认是什么?常用的就两个,面试重点说这俩就行:1.singleton(单例):默认作用域,整个容器中只创建一个Bean实例,全局共享;2.prototype(多例):每次从容器获取Bean,都会新建一个实例;另外还有request、session、application,基本web项目才用,日常开发很少用到。注意:单例Bean是线程不安全的,所以开发中尽量不要在Bean里定义成员变量。6.SpringBean的生命周期?核心流程一句话:实例化→依赖注入→初始化→销毁详细步骤:1.实例化:通过反射创建Bean空对象;2.依赖注入:给对象的属性赋值、装配依赖Bean;3.初始化:执行各种前置处理器、自定义init方法、后置处理器;4.就绪:Bean完全初始化完成,可供业务使用;5.销毁:容器关闭时,执行自定义销毁方法。7.什么是AOP?底层原理?AOP是面向切面编程,核心就是在不修改原有业务代码的前提下,对方法进行增强,实现代码解耦。日常用来做日志记录、权限校验、事务控制、接口限流、统一异常处理这些通用功能。底层原理是动态代理:1.目标类有接口:用JDK动态代理;2.目标类没有接口:用CGLIB字节码增强代理。8.AOP的核心术语了解吗?不用死记概念,通俗说:-切点:要拦截的哪些方法;-通知:拦截之后要执行的增强逻辑(前置、后置、异常、环绕);-切面:切点+通知的结合体,就是我们写的切面类;-连接点:所有可以被拦截的方法。9.Spring事务原理?@Transactional注解底层Spring事务本质就是AOP动态代理。加了@Transactional的方法,启动时会生成代理对象,调用方法时:1.方法执行前:开启事务;2.正常执行:方法走完提交事务;3.出现异常:回滚事务。日常开发中事务失效的场景经常会考,核心原因基本都是代理失效。10.@Transactional事务失效的常见场景?这是面试高频重点,列举最常用的5种:1.方法非public:非public方法不会被AOP代理,事务不生效;2.同类内部调用:A类的a方法调用本类带事务的b方法,绕过了代理对象,事务失效;3.异常类型不对:默认只回滚RuntimeException和Error,普通Exception不回滚;4.异常被try-catch吃掉:手动捕获异常不抛出,Spring感知不到异常,不会回滚;5.传播机制配置不当:比如配置了REQUIRES_NEW、NOT_SUPPORTED等,导致事务不生效或独立运行。11.Spring事务传播机制有哪些?常用的?一共7种,开发只用记3个核心的:1.REQUIRED(默认):有事务就加入,没事务就新建,最常用;2.REQUIRES_NEW:每次都新建独立事务,挂起原有事务,互不影响;3.SUPPORTS:有事务就跟着跑,没事务就非事务运行。12.Spring的循环依赖是什么?怎么解决的?循环依赖就是A依赖B,B又依赖A,两个Bean互相嵌套依赖。Spring能解决单例、setter/构造器(部分)循环依赖,解决不了多例、构造器循环依赖。核心解决方案:三级缓存1.一级缓存:完整初始化好的Bean;2.二级缓存:已经实例化、还没填充完属性的Bean;3.三级缓存:Bean的工厂对象,提前暴露Bean引用。原理就是提前把半成品Bean暴露出去,让对方先完成注入,再完成自身完整初始化,解开循环。13.构造器注入为什么会出现循环依赖报错?因为构造器注入是先初始化、再传参,创建A需要先有B,创建B又需要先有A,互相卡死,没有半成品对象可以提前暴露,Spring没法解决,直接报错。14.Spring中BeanFactory和ApplicationContext的区别?1.BeanFactory是最底层的Bean工厂,功能简单,懒加载,用时才创建Bean;2.ApplicationContext是BeanFactory的升级版,功能更全,包含国际化、事件发布、资源加载、前置后置处理器等;3.ApplicationContext默认容器启动就初始化所有单例Bean。15.@Component、@Service、@Repository、@Controller区别?底层功能一模一样,都是把类交给Spring管理,只是语义不同,分层使用:-@Component:通用组件,不确定分层时用;-@Service:业务层专用;-@Repository:DAO持久层专用;-@Controller:控制层接口专用。16.@Autowired和@Resource的区别?1.@Autowired是Spring注解,默认按类型装配,必须要有对象,否则报错;2.@Resource是JDK原生注解,默认按名称装配,找不到名称再按类型;3.@Autowired可以配合@Qualifier指定名称注入,解决同类型多Bean冲突。17.SpringMVC的执行流程?1.客户端发请求,先到前端控制器DispatcherServlet;2.DispatcherServlet调用处理器映射器,找到对应Controller;3.调用处理器适配器,执行Controller中的业务方法;4.Controller返回结果和视图;5.视图解析器解析视图,渲染数据;6.响应结果返回给前端。18.Spring中的设计模式,你知道哪些?面试说常用的几个即可:-单例模式:Spring默认Bean单例;-工厂模式:BeanFactory、ApplicationContext创建Bean;-代理模式:AOP核心动态代理;-模板方法模式:JdbcTemplate、事务模板;-观察者模式:Spring事件发布监听机制。19.为什么Spring单例Bean线程安全吗?怎么保证?Spring单例Bean不是线程安全的。因为单例全局共享,多线程并发访问时,如果Bean中有成员变量,会出现变量覆盖、并发问题。解决方式:开发中不在Bean中定义可变成员变量,变量尽量定义在方法内,随线程私有,规避并发问题。20.SpringAOP和拦截器、过滤器的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年函授大专音乐模拟试题(含答案)
- 2026年电子电路常识模拟试题(含答案)
- 光伏产业2026年发展趋势行业研究报告
- 贝类养殖工安全行为测试考核试卷含答案
- 幻灯机与投影机维修工岗前安全素养考核试卷含答案
- 2026年福建邮政考试模拟试卷(含答案)
- 电鸣乐器接装工安全知识竞赛知识考核试卷含答案
- 2026年村居委会模拟试卷目(含答案)
- 2026年推优理论考模拟题及答案详解
- 2026年认识方向模拟题及答案详解
- 电力设施运维与检修标准手册
- 2026校招:腾讯公司试题及答案
- 瘫痪病人足下垂课件
- YB-T5034-2024《履带用热轧型钢》
- 小学生科普芯片
- 畜禽养殖废弃物资源化利用
- 2025年技师仓储管理试题及答案
- 2026年高中政治学业水平考试知识点归纳总结(必修一-四)
- 2025年高中地理学法指导课件
- 酵素肥料讲解课件
- 消防维保课件
评论
0/150
提交评论