SpringBoot项目启动tomcat时自动运行某个方法的两种方式 朴灿烈づ我的快乐病毒、 2024-04-18 09:03 16阅读 0赞 1.采用加注解方式 在方法上加@PostConstruct //读取阻塞队列,多线程执行 @PostConstruct public void refundOrder() { System.out.println("启动tomcat时自动调用"); RBlockingDeque<String> blockingDeque = redissonClient.getBlockingDeque("jiuyang_order_message"); scheduledThreadPoolExecutor.execute(new SendingTask(blockingDeque)); RBlockingDeque<String> blockingDeque2 = redissonClient.getBlockingDeque("jiuyang_order_zhang"); scheduledThreadPoolExecutor.execute(new SendingTask(blockingDeque2)); } 2.采用实现ApplicationRunner接口.重写run方法 ,run方法调用的方法都会在启动tonmcat是时执行 import com.cncbox.mall.consumer.service.impl.RefundOrderServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; /** * @author : zhang sq * @date : 2019/8/22 16:02 **/ @Component public class ApplicationRunnerImpl implements ApplicationRunner { @Autowired private RefundOrderServiceImpl refundOrderService; //tomcat启动执行此方法 @Override public void run(ApplicationArguments args) throws Exception { refundOrderService.refundOrder(); //正常订单超时未付款自动关闭 refundOrderService.automatic(); //自动收货 refundOrderService.comment(); //自动好评 } }
还没有评论,来说两句吧...