news 2026/4/18 3:41:26

Spring框架核心

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 家族全家桶),可以直接告诉我,我继续展开~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 6:08:20

【JavaSE】【网络原理】UDP和TCP原理

【JavaSE】【网络原理】UDP 和 TCP 的原理详解 在 JavaSE 阶段学习网络编程时,理解 UDP 和 TCP 的核心区别与工作原理 是最重要的一环,因为 Java 的 Socket、ServerSocket、DatagramSocket 等类本质上就是在封装这两种传输层协议。 下面用最清晰的对比…

作者头像 李华
网站建设 2026/4/11 12:49:42

智慧交通数据治理中的典型“四重困境”:**异构性、时效性、关联性、质量性**四大瓶颈,共同导致数据价值难以释放

智慧交通数据治理中的典型“四重困境”:异构性、时效性、关联性、质量性四大瓶颈,共同导致数据价值难以释放。要系统性破局,需构建“一底座、两引擎、三闭环”的新型交通数据智能中枢架构: 一底座:建设统一时空基准的数…

作者头像 李华
网站建设 2026/4/17 12:23:37

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

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

作者头像 李华
网站建设 2026/4/8 6:42:53

了解Agent Skills,这一篇就够了

一、Skills 简介 Skill 是一种模块化、可复用的能力包,用于将特定任务的专业知识、工作流程和可执行逻辑进行结构化封装,使 AI 在执行该类任务时具备稳定、一致且可持续演进的行为能力。 Agent 在执行任务时,会自主决策,会根据P…

作者头像 李华
网站建设 2026/4/2 15:09:58

基于Python 图书管理系统(源码+数据库+文档)

图书管理 目录 基于PythonDjango图书管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于PythonDjango图书管理系统 一、前言 博主介绍:✌️大厂码农…

作者头像 李华