Spring框架核心

Spring 框架核心详解(2025-2026 主流认知版)

Spring 框架发展到今天(Spring Framework 6.x + Spring Boot 3.x 时代),其核心已经非常清晰,主要围绕以下6 大核心支柱构建,几乎所有高级功能都是在这 6 个基础上的组合与扩展。

一、Spring 核心六大支柱(必须记住的骨架)

排名核心概念英文名称一句话本质作用是否 Spring Boot 默认开启2025-2026 重要程度
1控制反转 / 依赖注入IoC / DI把“new 对象”的权利交给容器★★★★★
2Bean 的生命周期与容器BeanFactory / ApplicationContext管理所有 Spring Bean 的创建、销毁、作用域等★★★★★
3AOP(面向切面编程)Aspect Oriented Programming在不改业务代码前提下插入横切逻辑(日志、事务等)是(但需加注解)★★★★☆
4@Configuration + Java 配置Java-based Configuration用纯 Java 代码替代 XML 配置是(Spring Boot 主流)★★★★☆
5自动装配与条件装配@Autowired / @Conditional自动找 bean + 根据条件决定是否创建 bean★★★★☆
6核心注解驱动开发@Component / @Service / @Repository 等声明式开发,替代传统 XML bean 定义★★★★☆

二、最核心概念逐一拆解(通俗版 + 代码示例)

1. IoC 容器与 DI(最重要,占 Spring 灵魂 60%)

一句话
你不用自己new,由 Spring 容器帮你创建对象并把依赖“注入”进来。

三种注入方式(2025 年主流写法)

@ServicepublicclassOrderService{// 方式1:字段注入(最常见,但不推荐用于生产)@AutowiredprivateUserRepositoryuserRepo;// 方式2:构造器注入(官方 2025 年最推荐写法)privatefinalPaymentServicepaymentService;@Autowired// Spring 4.3+ 后单参构造器可省略 @AutowiredpublicOrderService(PaymentServicepaymentService){this.paymentService=paymentService;}// 方式3:Setter 注入(适合可选依赖)privateEmailServiceemailService;@Autowired(required=false)// 可选注入publicvoidsetEmailService(EmailServiceemailService){this.emailService=emailService;}}

面试常问:为什么推荐构造器注入?
答:

2. Bean 的作用域(Scope)
作用域说明使用场景默认值?
singleton整个容器只有一份几乎所有服务类、工具类
prototype每次获取都创建一个新对象有状态的 bean(如每次请求新对象)
request每个 HTTP 请求一个 beanWeb 环境下的 request 范围对象
session每个 HTTP Session 一个 bean用户会话级别的对象
application整个 ServletContext 一个 bean全局应用数据
websocket每个 WebSocket 会话一个 beanWebSocket 场景

代码写法(最常用两种)

@Component@Scope("prototype")// 每次 @Autowired 都新对象publicclassTicketGenerator{...}@Bean@Scope(value="request",proxyMode=ScopedProxyMode.TARGET_CLASS)publicShoppingCartshoppingCart(){...}
3. AOP 的核心四要素(2025 年面试高频)
  1. 切面(Aspect)= 切点(Pointcut) + 通知(Advice)

  2. 通知类型(Advice 类型,按执行顺序):

最常用环绕通知写法(事务、日志、权限的典型模板)

@Aspect@ComponentpublicclassLoggingAspect{@Around("@annotation(org.springframework.transaction.annotation.Transactional)")publicObjectlogTransaction(ProceedingJoinPointjoinPoint)throwsThrowable{log.info("开启事务:{}",joinPoint.getSignature());try{Objectresult=joinPoint.proceed();// 执行目标方法log.info("事务提交");returnresult;}catch(Throwablee){log.error("事务回滚",e);throwe;}}}
4. Spring Boot 如何把这些核心简化到极致
Spring 经典写法Spring Boot 时代写法(2025 主流)简化了什么
XML + 定义@Component / @Service / @Repository告别 XML
ClassPathXmlApplicationContextSpringApplication.run()一行启动整个容器
@Autowired + @Qualifier@Autowired + 首字母小写 bean 名自动注入减少配置
手动配置 DataSource、JdbcTemplatespring-boot-starter-jdbc 自动配置零配置连接数据库

三、2025-2026 年 Spring 核心面试高频题(建议背熟)

  1. Spring IoC 容器启动过程中发生了什么?(BeanFactory → ApplicationContext → refresh() 十二大步骤)
  2. Bean 的生命周期完整 11 个阶段是哪些?(最常考前 7 个:实例化 → 属性填充 → 初始化前 → 初始化 → 使用 → 销毁前 → 销毁)
  3. @Autowired、@Resource、@Inject 的区别?
  4. Spring 如何解决循环依赖?(三级缓存机制)
  5. AOP 的底层实现原理?(动态代理:JDK Proxy vs CGLIB)
  6. Spring Boot 自动配置的原理?(@EnableAutoConfiguration → spring.factories → Condition 条件装配)

四、一句话总结 Spring 核心

Spring 的本质就是:帮你管理对象(IoC)、帮你注入依赖(DI)、帮你在不改代码的情况下插入额外逻辑(AOP),然后用一堆约定优于配置的方式把这一切变得极简(Spring Boot)。

如果你想深入某一块(比如循环依赖三级缓存、AOP 动态代理源码、BeanFactory 与 ApplicationContext 区别、@Conditional 家族全家桶),可以直接告诉我,我继续展开~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1199709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能综合管理平台,何以破解咨询企业管理痛点?

某中型管理咨询公司,专精特新企业,深耕企业管理咨询领域多年,业务辐射全国,服务过众多行业领军企业。随着市场版图持续扩大,客户资源量级攀升、销售团队规模扩容,原有粗放式管理模式逐渐暴露出诸多短板。 一…

第8章:从jdbc到MyBatis

文章目录第8章:从jdbc到MyBatisJDBC操作数据库原生JDBC访问数据库缺点和ORM框架介绍Mybatis基础知识SpringMybatis快速入门第8章:从jdbc到MyBatis JDBC操作数据库 JDBC核心概念 Java Database Connectivity(Java数据库连接)Jav…

时间同步服务器大型单位推荐

一次时间同步问题的排查与取舍 ——关于北斗 NTP 与本地守时的工程实践 在一个内部业务系统中,我们曾遇到一个看似不起眼、但反复出现的问题: ​不同系统日志时间存在偏差,问题复盘时很难对齐事件顺序​。 起初大家…

Python神经网络、随机森林、PCA、SVM、KNN及回归实现ERα拮抗剂、ADMET数据预测|附代码数据

全文链接:tecdat.cn/?p44844原文出处:拓端数据部落公众号关于分析师在此对Shoufu Lin对本文所作的贡献表示诚挚感谢,他在浙江工业大学完成了工业工程与管理专业的硕士学位,专注深度学习、运筹优化领域。擅长Python、深度学习、运…

基于51/STM32单片机电机霍尔测速PWM控制PID无刷CAN总线无线设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于51/STM32单片机电机霍尔测速PWM控制PID无刷CAN总线无线设计(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码基于51/STM32单片机电机霍尔测速PWM控制PID无刷CAN总线无线设计(设计源文件万字报告讲解)(支持资料、…

服务器里面多个网口,电口,光口确定

在设备服务器上架时会涉及到配置网络和IP地址,确认端口的问题,对于有BMC系统的服务器,直接插入光模块和光纤后,可以在BMC里面确认好连接的哪个端口,端口会显示是否已连接光纤。 但是有时候在统信 等linux系统下面使用i…

携程闹乌龙,误发通知全员都被离职了。

1月12日晚,大量携程员工突然收到一条措辞正式的离职通知短信,内容以“XX你好,感谢一路相伴”开头。此次乌龙事件源于内部沟通软件trappal下线,在关停关联手机号绑定功能时,工作人员未提前关闭系统预设的短信提醒&#…

Python用Ridge、Lasso、KNN、SVM、决策树、随机森林、XGBoost共享单车数据集需求预测及动态资源调配策略优化|附代码数据

全文链接:tecdat.cn/?p44851原文出处:拓端数据部落公众号关于分析师在此对Weiduoduo Han对本文所作的贡献表示诚挚感谢,她深耕大数据技术领域,系统掌握Python、Java、Spark等技术工具,精通Java程序设计、数据结构、计…

基于STM32单片机DDS函数信号发生器AD9850方波正弦波设计套件57(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于STM32单片机DDS函数信号发生器AD9850方波正弦波设计套件57(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 STM32单片机DDS函数信号发生器方波正弦波57 产品功能描述: 本系统由STM32F103C8T6单片机核心板、AD…

使用 useAgent 与 LangGraph 构建全栈 AI Agent 应用

AI agent 正在迅速从令人惊叹的演示演进到大规模的生产级应用,而 LangGraph 让这一转变比以往更顺畅。但在此之前,把这些 agent 接到一个 frontend(并为用户提供实时交互)往往需要一堆杂乱的 API、state management,以…

Python、Flask、ECharts及MySQL疾病疫情数据可视化系统设计与实现——多模块联动实时展示优化|附代码数据

全文链接:tecdat.cn/?p44846原文出处:拓端数据部落公众号 关于分析师 在此对Chao Xu Li对本文所作的贡献表示诚挚感谢,他完成了电子信息科学与技术专业的本科学位,专注疫情数据可视化与Web开发领域。擅长Python、MySQL、Linux、C…

基于51/STM32单片机智能台灯路灯坐姿语音光照PWM调光无线设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于51/STM32单片机智能台灯路灯坐姿语音光照PWM调光无线设计(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 08-多功能台灯 基于51/STM32单片机智能台灯路灯坐姿语音播报光照PWM调光无线设计 光照声音插座阈值可调C51-17 光…

批量校正图像方向(校正PDF页面方向)

批量校正图像方向是一款专为扫描类文档设计的图像处理工具,主要用于自动识别并校正图片和PDF文档的页面方向(如横版转竖版或竖版转横版)。该软件通过智能算法分析页面内容,批量调整方向以确保文档可读性,适用于合同、报…

国产知识管理平台崛起:Gitee Wiki如何领跑企业数字化转型新赛道

国产知识管理平台崛起:Gitee Wiki如何领跑企业数字化转型新赛道 随着"十四五"规划明确提出加快数字化发展步伐,企业知识管理平台正迎来前所未有的战略机遇期。在信创产业蓬勃发展的背景下,国产Wiki系统已从单纯的内容管理工具进化为…

2026年全球医疗行业趋势研究报告:AI医疗、创新药与医疗器械|附240+份报告PDF、数据、可视化模板汇总下载

原文链接:tecdat.cn/?p44820原文出处:拓端抖音号拓端tecdat 在重症监护室的紧急抢救中,AI辅助诊断系统为医生精准识别病灶争取关键时间;在西部偏远乡村的卫生室,国产彩超设备让村民无需奔波县城就能完成基础疾病筛查—…

Gitee领跑2026年项目管理工具市场:技术驱动与本土化优势双轮驱动

Gitee领跑2026年项目管理工具市场:技术驱动与本土化优势双轮驱动 在数字化转型浪潮席卷全球的背景下,项目管理工具已成为企业提升效率、优化资源配置的关键基础设施。2026年的项目管理工具市场呈现出明显的技术驱动特征,其中Gitee作为中国最大…

ClevNote安卓版(安卓手机备忘录应用)

ClevNote是一款方便实用的Android备忘录应用。它提供了多种功能,可以帮助用户管理日常的备忘事项、清单、提醒和密码等。 软件功能 1.备忘录功能:用户可以轻松创建和管理备忘录,写下日常的想法、计划和提醒事项。 2.清单功能:用户…

高通QCE工程实践:硬件加密加速从入门到调试

本文基于高通平台硬件加密实践经验整理,适合应用开发者和系统工程师。通过几个典型场景,带你理解QCE的工作原理、验证方法和调试技巧。 为什么需要关注硬件加密加速? 在Android应用或系统开发中,你是否遇到过这些困惑&#xff1a…

走向开放硅:Baochip-1x 的 RISC-V MCU 架构与工程实践

在开源硬件领域,一款既有芯片级代码又可用于工程实践的项目并不多见。baochip-1x 就是这样一个鲜明例子:它是一个围绕 RISC-V 架构、绝大部分开源逻辑描述的 MCU(微控制器)项目。该项目的代码托管在 GitHub 上,并提供部…

JMeter压力测试,如何“温柔”地搞垮你的服务器?

大家好,我是小悟。 一、JMeter是何方神圣? 假如,你就是那个在黑色星期五早上8点冲向超市大门的购物狂魔,而JMeter就是你那支可以瞬间克隆出1000个你的神奇部队!它不是什么神秘的黑客工具,而是Apache家族里…