无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

Spring生命周期概述(看完这篇就够了)

Java dancy 10个月前 (11-23) 176次浏览 已收录 0个评论 扫描二维码

Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。

什么是Spring 生命周期

spring是一个管理各个bean(Java对象)的容器,她也和生命一样有从诞生到活动再到销毁的过程。Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean,这其中包含了一系列关键点。下图是生命周期流程图:

Spring生命周期概述(看完这篇就够了)
Spring生命周期概述(看完这篇就够了)

为什么要掌握Spring生命周期

有点类似于aop,当你掌握了Spring生命周期后,你就可以在他的主要生命阶段对其进行改造和配置,从而更好得服务于应用开发.

Spring的生命周期是怎样的

1.BeanFactory也就是容器的创建

2.各个Bean的创建(因为Bean本身是业务的核心,因此对其生命周期更加的关注,分得也更细)

2.1.Bean的构造

2.2.Bean的属性注入

2.3.Bean的自定义初始化

3.容器的关闭月Bean的销毁

如何介入Spring的生命周期

Spring针对期不同的生命阶段提供了不同的类

1.容器级生命周期接口方法 : 这个包括了
InstantiationAwareBeanPostProcessor 和 BeanPostProcessor 这两个接口实现,一般称它们的实现类为“后处理器”。

2.工厂后处理器接口方法 : 这个包括了AspectJWeavingEnabler,
ConfigurationClassPostProcessor, CustomAutowireConfigurer等等非常有用的工厂后处理器 接口的方法。工厂后处理器也是容器级的。在应用上下文装配配置文件之后立即调用。

3.Bean级生命周期接口方法 : 这个包括了BeanNameAware、BeanFactoryAware、ApplicationContextAware,InitializingBean和DiposableBean这些接口的方法

4.Bean自身的方法 : 这个包括了Bean本身调用的方法和通过配置文件中<bean>的init-method和destroy-method指定的方法

常用类的执行顺序


1.BeanFactoryPostProcessor的postProcessBeanFactory方法


2.InstantiationAwareBeanPostProcessor的postProcessBeforeInstantiation方法

3.Bean构造器


4.InstantiationAwareBeanPostProcessor的postProcessPropertyValues方法

5.Bean属性注入

6.BeanNameAware的setBeanName方法

7.BeanFactoryAware的setBeanFactory方法

8.ApplicationContextAware的setApplicationContext方法

4.BeanPostProcessor的
postProcessBeforeInitialization方法

5.InitializingBean的afterPropertiesSet方法

6.自定义的init-methond方法

7.BeanPostProcessor的
postProcessAfterInitialization方法

8.InstantiationAwareBeanPostProcessor的postProcessAfterInitialization方法

8.DisposableBean的detory方法

9.自定义destory-method方法

json转map的6种方法详解

喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

表情 贴图 加粗 删除线 居中 斜体 签到