spring初始化bean之后执行某个方法

2023-12-26 06:19:43

这个问题可以分两种解释:

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 .?

文章来源:https://blog.csdn.net/u010702093/article/details/135201440
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。