Spring Bean的生命周期
2022-07-21 10:49:00 0 举报
Spring Bean的生命周期,创建和销毁
作者其他创作
大纲/内容
若实现了BeanNameAware,则调用setBeanName()
注入依赖项setter注入
Awareness机制:使Bean自己知道自己的相关信息。例如:通常情况bean对象自己内部是不知道自己的Name的,若Bean定义时实现了BeanNameAware接口,则Spring会自动调用setBeanName方法,这样bean对象自己就知道了自己的Name。Awareness机制,主要使用在基础框架场景,通常业务系统开发使用不会用到。@PostConstruct和@PreDestroy都是Java标准的注解,由容器提供实现,需配置<context:annotation-config/>(或<context:component-scan/>)改注解才生效。
销毁:销毁前处理
获得Bean定义扫描XML/注解/Java配置类
若存在@PreDestroy注解,则调用有此注解的方法
若Bean定义XML中指定了init-method或者注解@Bean(initMethd=\"...\"),则调用指定的方法
若实现了BeanClassLoaderAware,则调用setBeanClassLoader()
创建阶段一:Bean实例化和DI
若实现了DisposableBean,则调用destroy()方法
创建阶段二:Awareness
若实现了ApplicationContextAware,则调用setApplicationContext()
若实现了InitializingBean,则调用afterPropertiesSet()方法
若Bean定义XML中指定了destroy-method或者注解@Bean(destroyMethd=\"...\"),则调用指定的方法
创建Bean实例默认构造函数/构造函数注入
销毁前处理流程,与创建后的处理流程具有对应关系。
创建阶段三:自定义初始化
若存在@PostConstruct注解(这时java自带的注解,由容器实现),则调用有此注解的方法
0 条评论
下一页