需要在项目启动时做一下其他工作。于是新写一个监听继承了ApplicationListener接口。实现其onApplicationEvent方法
@Component
public class InitListener implements ApplicationListener<ApplicationReadyEvent> {
//public class InitListener implements CommandLineRunner {
private static Logger logger = LoggerFactory.getLogger(InitListener.class);
@Autowired
Scheduler scheduler;
@Autowired
QuartzManager quartzManager;
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
logger.info("pqpqpqppqqppqpqpqpqpqppqpqpqpqp");
quartzManager.addmyTestJob(scheduler);
}
启动发现 输出两行 “pqpqpqppqqppqpqpqpqpqppqpqpqpqp” debug 发现 onApplicationEvent 方法被执行两次。查了一下原因https://www.cnblogs.com/mayi1/p/6323238.html。
后来使用了第二种方法 继承 CommandLineRunner接口。并实现其run方法。如下
@Component
//public class InitListener implements ApplicationListener<ApplicationReadyEvent> {
public class InitListener implements CommandLineRunner {
private static Logger logger = LoggerFactory.getLogger(InitListener.class);
@Autowired
Scheduler scheduler;
@Autowired
QuartzManager quartzManager;
@Override
public void run(String... args) throws Exception {
System.out.println("8888888888888888888888");
}
启动只输出了一行“8888888888888888888888”。