5

Spring 应用程序中是否有办法知道初始化何时完成?部署应用程序后,我必须运行一些代码,并且正在搜索诸如 ServletContextListener 或Spring built-in events 之类的内容。

4

2 回答 2

7

根据您对我的评论的回复,我将回复您可以执行的多种操作来处理已初始化的 Spring bean。

  1. 您可以使用BeanPostProcessor. 它有两种被视为回调的方法,我相信这postProcessAfterInitialization是您会感兴趣的方法。带有BeanPostProcessor's 的事情是它们为 中的每个 bean 运行ApplicationContext,因此您需要确保寻找只有您有兴趣应用此处理的 bean。要使用BeanPostProcessor,您只需将其定义为ApplicationContext.
  2. 实现InitializingBean接口。它定义了一个afterPropertiesSetApplicationContext. 这比数字 1 有优势,因为它可以逐个 bean 应用(不适用于 中的所有 bean ApplicationContext)。
  3. 在方法上使用@PostContstuct注解。这个注解告诉ApplicationContext这个方法应该在 bean 被初始化之后运行。这与第 2 点类似,因为它是逐个 bean 执行的。

ApplicationContext可以在此位置阅读有关回调生命周期的更多信息。

于 2013-07-09T21:16:24.010 回答
2

您可以使用

于 2013-07-09T21:11:29.423 回答