这个问题可以分两种解释:
1. 某个bean初始化执行?
2. 所有bean初始化后执行?
第一个问题可以在spring bean的生命周期中找到答案:?
bean定义-实例化-初始化-销毁。注意: 这里的bean定义是指所有的bean定义完成,然后才继续执行,而实例化和初始化 单个bean 一次执行的 。
那么问题1 可以有如下方式:?
实现BeanPostProcessor.postProcessAfterInitialization
使用注解@PostConstruct
实现InitializationBean.afterPropertiesSet
但以上方法仅对当前bean的生命周期起作用。 比如我想在A类中控制B类(我的需求:B类在jar报中使用@Bean生成)的初始化,我用了BeanPostProcessor,发现A类先于B类实例化,可以使用@DependsOn 强制B类实例化。?
问题2: 可以使用 ApplicationListener<ContextRefeshedEvent> 监控容器启动完成后。
或者 ApplicationRunner CommandLineRunner .?