Bean 初始化(Initalization)
-
@PostConstruct 注解方法
-
实现InitializingBean 接口的afterPropertiesSet()方法
-
自定义初始化方法
1. XML配置: <bean init-method=“init”
2. Java 注解:@Bean(initMethod=“init”)
3. JavaAPI:AbstractBeanDefinition#setInitMethodName执行的顺序:
@PostConstruct >InitializingBean >自定义初始化方法
Bean 延迟初始化
- XML配置:<bean lazy-init=“true”
- Java注解:@Lazy(true)
当某个Bean 定义为延迟初始化,Spring 容器返回的对象和非延迟的对象存在怎么样的差异?
非延迟初始化再Spring 应用上下文启动完成后,被初始化
延迟加载是Spring 应用上下文启动完成后,通过依赖查找触发它的初始化
销毁Spring Bean
- @PreDestroy 标注方法
- 实现DisposableBean 接口的destroy()方法
- 自定义销毁方法
XML 配置
@Bean(destroy=“methodName”)
JavaAPI: AbstractBeanDefinition#setDestroyMethodName
@PreDestroy >DisposableBean >自定义初始化方法