乐途乐途
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
  • 学习路径
  • 第1章 Spring 概述与 IoC 容器

    • 本章定位
    • Spring Framework 概述
    • IoC 与 DI 核心概念
    • @Configuration 详解
    • @Component 详解
    • @ComponentScan 详解
    • @Import 详解
    • @Profile 详解
    • @PropertySource 详解
    • @Service 详解
    • @Repository 详解
  • 第2章 Bean 的定义与依赖注入

    • 本章定位
    • @Bean 详解
    • @Autowired 详解
    • @Qualifier 详解
    • @Primary 详解
    • @Resource 详解
    • @Inject 详解
    • @Named 详解
    • @Value 详解
    • @Scope 详解
    • @Lazy 详解
  • 第3章 Bean 生命周期与作用域

    • 本章定位
    • Bean 生命周期概述
    • @PostConstruct
    • @PreDestroy
    • InitializingBean
    • DisposableBean
    • BeanPostProcessor
    • BeanFactoryPostProcessor
  • 第4章 AOP 面向切面编程

    • 本章定位
    • AOP 核心概念
    • @EnableAspectJAutoProxy
    • @Aspect
    • @Pointcut
    • @Before
    • @After
    • @AfterReturning
    • @AfterThrowing
    • @Around
  • 第5章 数据访问与事务管理

    • 本章定位
    • 数据访问概述
    • @EnableTransactionManagement
    • @Transactional
    • @Transactional 的传播行为
    • @Transactional 的隔离级别
    • @Transactional 的回滚规则
    • @Transactional 的超时与只读属性
    • @TransactionalEventListener
  • 第6章 Spring Boot 自动配置

    • 本章定位
    • @SpringBootApplication 注解
    • @EnableAutoConfiguration 注解
    • @ConfigurationProperties 注解
    • @ConditionalOnClass 注解
    • @ConditionalOnMissingBean 注解
    • @ConditionalOnProperty 注解
  • 第7章 Spring MVC 导引

    • Spring MVC 导引
  • 第8章 扩展阅读

    • 本章定位
    • Spring 事件机制 — ApplicationEvent / ApplicationListener
    • @EventListener
    • SpEL — Spring 表达式语言
    • 校验 Validation — JSR-303 / JSR-380 Bean Validation
    • 类型转换与数据绑定 — Converter / DataBinder
  • 附录

    • Spring Framework 专业术语
    • Spring 核心知识点
    • Spring 面试高频考点
    • Spring 核心注解速查表

"李眉在排查内存泄漏时发现,飞翔科技的订单服务在重启时连接池没有关闭。白歌说:'你需要在 Bean 销毁时做清理。'这一章,你将掌握 Spring Bean 从诞生到死亡的完整生命周期,以及每一个可以介入的关键节点。"

Bean 生命周期与作用域

本章定位

本章解决的核心问题:Bean 被容器创建和注入之后,如何在初始化阶段完成资源准备、在销毁阶段完成资源释放,以及如何通过扩展点干预整个生命周期。

学习路线图

学习顺序说明:先建立生命周期全局视图 → 学习初始化阶段的两种标准方式(Spring 接口 vs JSR-250 注解) → 学习销毁阶段的两种标准方式 → 最后掌握两个最强大的扩展处理器,理解它们如何"包裹"整个容器。

文件关系说明

文件一句话角色
Bean 生命周期概述.md本章总纲,用一张时序图展示 Bean 从实例化到销毁的完整旅程。
InitializingBean.mdSpring 标准初始化接口,实现afterPropertiesSet()完成初始化逻辑。
PostConstruct.mdJSR-250 标准初始化注解,与InitializingBean形成"注解优先"的推荐方案。
PreDestroy.mdJSR-250 标准销毁注解,标记需要在容器关闭前执行的清理方法。
DisposableBean.mdSpring 标准销毁接口,实现destroy()完成资源释放逻辑。
BeanPostProcessor.mdBean 级别的后置处理器,在 Bean 初始化前后插入自定义逻辑(AOP 的底层基础)。
BeanFactoryPostProcessor.md容器级别的后置处理器,在 Bean 定义加载后、实例化前修改配置元数据。

知识图谱

核心逻辑:生命周期分为"初始化"和"销毁"两大阶段;@PostConstruct/@PreDestroy是推荐的标准化方案;BeanPostProcessor是 Spring 扩展机制的基石(AOP 代理就在此处织入);BeanFactoryPostProcessor则站在更高维度,在 Bean 尚未诞生时修改容器配置。

与下一章的衔接

本章学完后,你已经理解了Bean 的完整生命周期和扩展机制。下一章「AOP 面向切面编程」将解决:如何将横切关注点(日志、权限、事务)从业务代码中剥离,实现模块化——而 AOP 的核心实现正是依托于本章所学的BeanPostProcessor,在 Bean 初始化阶段动态创建代理对象。没有生命周期基础,就无法真正理解 AOP 的底层原理。

下一页
Bean 生命周期概述