1、首先需要在类上添加@Component注解。
2、继承CommandLineRunner类,并重写run方法。
@Component
@Slf4j
@Order(value = 3)
public class MqttClientRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
//加载时启动创建MQTT
log.info("create MQTT start");
MqttUtils.MQTTGetConnect();
log.info("create MQTT end");
}
}
上图中的@Order代表的是权重,因为如果你有多个任务时,需要设置它们执行的先后顺序。
总结
SpringBoot项目启动时添加执行的任务是一个很重要的功能,可以根据业务的需求来选择使用,在本项目中,因为需要在项目启动时连接MQTT消息中间件平台,因此将其写进定时任务,这样一旦MQTT平台有第三方发布的消息,项目就可以订阅到相应的消息。