在所有 SpringBeans 和 ApplicationContext 都初始化后调用方法

2022-09-02 11:50:31

我在一个复杂的java程序中有一个方法,需要在Web ApplicationContext和SpringBeans初始化后立即调用。

我尝试过玩弄,但此方法将调用一个方法。<bean id="..." class="..." init-method="initialize">applicationContext.get().getBean(beanId);

我想知道是否有人知道如何做到这一点。

谢谢。


答案 1

在 Spring 4.2 以后,您可以使用注释将事件侦听器附加到 Spring 生命周期事件(以及您自己的事件)。只需将@EventListener添加到方法中,并将事件类型作为第一个(也是唯一一个)参数,Spring将自动检测并连接它。

https://spring.io/blog/2015/02/11/better-application-events-in-spring-framework-4-2

@Component
public class MyListener {

    @EventListener
    public void handleContextRefresh(ContextRefreshedEvent event) {
        ...
    }
}

答案 2

您可能会发现一个上下文刷新事件与 .ApplicationListener


推荐