背景
服务端项目在启动成功后需要读取配置,与远程的MQTT消息服务器建立连接,此操作只需执行一次
实现方法
可以创建一个自定义监听类,实现ApplicationListener< ContextRefreshedEvent >,然后重写其onApplicationEvent方法,在方法中需要添加一定的判断,保证每次重启服务端项目,方法中的业务逻辑只执行一次。另外注意,头部需添加@Component注解,指定被Spring容器扫描到。
/**
* @ClassName EmqxMsgListener
* @Description emqx消息监听器,项目启动时执行一次业务逻辑
* @Author lixing
* @Date 2023/8/24 9:48
**/
@Component
public class EmqxMsgListener implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
if(event.getApplicationContext().getDisplayName().equals("Root WebApplicationContext")){
// Spring容器初始化完成后,需要执行的业务逻辑
System.out.println("项目启动成功,我准备执行了。。。");
}
}
}
测试结果
运行服务端项目,查看启动日志,如下所示