前言
之前有测试
# 启动类加
@EnableAsync
# 方法上加
@Async
@PostConstruct
但是依旧会卡主主线程,所有另辟蹊径
在启动类上加
@EnableAsync
新建一个类,实现 ApplicationRunner
并重写 run
因为我们是死循环,所以在 run
方法上额外加一个 @Async
注解即可
例如如下
package com.ruoyi.project.init;
import com.ruoyi.common.utils.MyUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Async;
import javax.annotation.PostConstruct;
@Slf4j
@Configuration
public class HandleTransInit implements ApplicationRunner {
/**
* 处理转账数据
*
* @param args
*/
@Override
@Async
public void run(ApplicationArguments args) {
while (true) {
System.out.println("执行");
MyUtils.sleep(1000);
}
}
}
标签:ApplicationRunner,springboot,启动,springframework,线程,org,import,Async
From: https://www.cnblogs.com/daen/p/16721673.html