背景:当在写一个Spring项目时,配置了事件监听器,在项目启动的时候会自己启动一次,之后如果再调用Controller接口的时候,他还会自己再启动,这个时候我们的业务场景只需要启动一次该怎么办呢?
解答:
@EventListener
public void listener1(ApplicationEvent event) {
//解决controller调用接口的时候多次启动event实例
ContextRefreshedEvent event1 = (ContextRefreshedEvent) event;
if (event1.getApplicationContext().getParent() == null) {
//只启动一次的业务逻辑
}
}