SpringBean的生命周期
2022-10-11 19:23:49 1 举报
SpringBean的生命周期
作者其他创作
大纲/内容
代表bean级生命周期
3.实例化之后InstantiationAwareBeanPostProcessor.postProcessAfterInstantiation();
11.返回bean给用户,并存入缓存池
override
销毁方法有三个(顺序调用):1.@PreDestroy 注解标注的方法2.DisposableBean 接口的 destroy 方法3.配置的 destroy-method三个方法效果都是一样的,开发中选择其中一种方式就行,一般选择1、3方法中的一个。
8.InitializingBean.afterPropertiesSet();
Initialization 初始化阶段
true
Populate设置属性阶段
12.DispossableBean.destory();
5. Bean的属性值设置
初始化方法有三个(顺序调用):1.@PostConstruct 注解标注的方法2.InitializingBean 的 afterPropertiesSet()3.配置的 init-method三个方法效果都是一样的,开发中选择其中一种方式就行,一般选择1、3方法中的一个。
使用完后
bean自身的方法
1.实例化之前InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation();
代表容器级别生命周期
6.BeanNameAware.setBeanName();BeanClassLoaderAware.setBeanClassLoader();BeanFactoryAware.setBeanFactory();ApplicationContextAware.setApplicationContext();
如果自定义类实现了该接口InstantiationAwareBeanPostProcessor
10.初始化之后BeanPostProcessor.postProcessAfterInitialization();
prototype
方法可以分如下几类:1. Bean自身的方法: 比如构造函数 getter/setter以及init-method和destory-method所指定的方法2.Bean级生命周期方法: 可以理解为Bean直接实现接口的方法,比如BeanNameAware、BeanFactoryAware、ApplicationContextAware、InitializingBean、DisposableBean等。这些方法只对当前bean生效。3.容器级的方法(BeanPostProcessor一系列接口) 主要是后置处理器方法,比如InstantiationAwarePostProcessor、BeanPostProcessor接口方法。 这些接口的实现类是独立于bean的,并且会注册到Spring容器中。在Spring容器创建人和Bean的时候,这些后处理器都会发生作用4.工厂后置处理器方法(BeanFactoryProcessor一系列接口) 包括AspectJWeavingEnabler、CustomAutowireConfigurer、ConfigurationClassPostProcessor等。这些都是Spring框架中已经实现好的 BeanFactoryPostProcessor用来实现某些特定的功能Bean自身的方法和Bean级生命周期方法只能对当前的Bean起作用,但是容器级生命周期方法和工厂后置处理器方法是对所有的bean都起作用。
Instantiation实例化阶段
13.调用destory-method属性配置的销毁方法
2. bean的实例化:Instantiation (工厂模式+反射)
9.init-method属性配置的初始化方法
BeanDefinition
如果自定义类实现了该接口BeanPostProcessor
11.返回bean给用户,剩下的生命周期交给用户控制,即由JVM垃圾回收
singleton
图例
4.属性修改InstantiationAwareBeanPostProcessor.postProcessProperties();
Destruction销毁阶段
7.初始化之前BeanPostProcessor.postProcessBeforeInitialization();
0 条评论
回复 删除
下一页