- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Spring面试题及详细答案
一、Spring核心概念相关
1.什么是Spring?它的核心优势有哪些?
答案:Spring是一个轻量级的Java开发框架,核心是IOC(控制反转)和AOP(面向切面编程),主要作用是简化Java企业级开发。
核心优势:
1)解耦:通过IOC容器管理对象依赖,替代手动new对象和组装依赖,降低组件间耦合度;
2)AOP支持:能在不修改业务代码的前提下,实现日志记录、事务管理、权限控制等横切逻辑;
3)一站式框架:整合了ORM(如MyBatis)、事务管理、Web开发(SpringMVC)、缓存等功能,不用单独整合多个框架;
4)轻量灵活:核心包体积小,不强制依赖其他组件,可按需集成,支持注解和XML两种配置方式,适应不同开发习惯;
5)便于测试:Spring支持依赖注入,能轻松通过Mock对象进行单元测试,降低测试难度。
2.解释一下Spring中的IOC和DI,以及它们的关系?
答案:
IOC(InverseofControl,控制反转):核心思想是“将对象的创建和依赖管理交给Spring容器”,反转了传统开发中“开发者手动控制对象创建和依赖”的流程。比如传统开发中,要使用一个Service,需要自己newService(),还要手动注入它依赖的Dao;而IOC中,开发者只需定义对象,由Spring容器负责创建对象并注入所需依赖。
DI(DependencyInjection,依赖注入):是IOC的具体实现方式,指Spring容器在创建对象时,自动将对象所需的依赖(如属性、构造方法参数)注入到对象中。常见的注入方式有构造器注入、setter注入、注解注入(@Autowired)。
关系:DI是IOC的实现手段,IOC是核心思想;也就是说,Spring通过DI的方式,实现了IOC的核心目标——解耦。
二、SpringBean相关
1.SpringBean的生命周期是什么?
答案:SpringBean的生命周期是从对象创建到销毁的完整过程,核心步骤如下(以单例Bean为例):
1)实例化:Spring容器通过反射创建Bean的实例(调用无参构造方法,若用构造器注入则调用对应有参构造);
2)属性注入:Spring容器将Bean依赖的属性(或其他Bean)注入到当前实例中(对应setter注入或构造器注入逻辑);
3)初始化前:若Bean实现了BeanPostProcessor接口,会调用postProcessBeforeInitialization方法(前置处理器,可自定义增强逻辑);
4)初始化:执行自定义初始化逻辑,优先级:@PostConstruct注解方法实现InitializingBean接口的afterPropertiesSet方法XML配置的init-method属性指定的方法;
5)初始化后:若Bean实现了BeanPostProcessor接口,会调用postProcessAfterInitialization方法(后置处理器,比如AOP动态代理就在这一步生成代理对象);
6)Bean就绪:此时Bean已完全创建完成,可被容器或外部调用;
7)销毁前:执行自定义销毁逻辑,优先级:@PreDestroy注解方法实现DisposableBean接口的destroy方法XML配置的destroy-method属性指定的方法;
8)销毁:Spring容器关闭时,销毁Bean实例(单例Bean随容器销毁,原型Bean由开发者手动销毁,容器不管理)。
2.SpringBean的作用域有哪些?分别适用于什么场景?
答案:SpringBean有5种核心作用域(Spring5+支持,基于Spring容器):
1)singleton(单例):默认作用域,容器中只存在一个Bean实例,所有请求都共享这个实例。适用场景:无状态组件(如Service、Dao层),因为无状态组件不会因多线程共享而产生数据安全问题;
2)prototype(原型):每次请求(getBean())都会创建一个新的Bean实例。适用场景:有状态组件(如Controller层的请求参数对象、视图模型),避免多线程共享导致的数据污染;
3)request(请求):仅适用于Web环境,每个HTTP请求会创建一个新的Bean实例,请求结束后Bean销毁。适用场景:需要存储当前请求数据的组件(如请求级别的缓存对象);
4)session(会话):仅适用于Web环境,每个HTTPSession会创建一个新的Bean实例,会话过期后Bean销毁。适用场景:需要存储用户会话数据的组件(如用户登录信息、购物车);
5)application(应用):仅适用于Web环境,整个Web应用共享一个Bea
您可能关注的文档
最近下载
- 2025版《举一反三》章节综合测试卷第八章 直线和圆、圆锥曲线综合测试卷(含答案及解析).pdf VIP
- 2022预应力混凝土空心板应用技术规程.docx VIP
- 2025年农产品质量安全技能大赛考试题库资料(含答案).docx VIP
- 七年级上册语文读读写写注音及解释(1).pdf VIP
- 内蒙古自治区2021-2022学年普通高学校业水平考试(高二会考)英语真题和答案详解.pdf VIP
- 最新初中生物新课标《义务教育生物学课程标准(2022-年版)》学习解读PPT课件.pptx VIP
- 中考英语考试真题及详细参考答案【完整2份】人教版.pdf VIP
- 新教材 高中英语外研版必修第一册全册各单元英语作文写作指导.pdf VIP
- 妇产科护理质量改进分析.pptx VIP
- 股票大作手--操盘术.pdf VIP
原创力文档


文档评论(0)