Springboot异步处理只要主程序中开启异步处理@EnableAsync,并在异步处理的方法上加上@Async即可,具体demo如下:
1、入口类开启异步调用
package com.chongdian.api;
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableAsync //开启异步调用
public class ApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
}
2、调用方法类 Controller
package com.chongdian.api.controller;
import com.chongdian.api.core.http.ResultResponse;
import com.chongdian.api.service.AsyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/task")
@RestController
public class TaskController {
@Autowired
private AsyncService asyncService;
@GetMapping("test")
public ResultResponse test(){
asyncService.async();
return new ResultResponse("ok");
}
}
3、 实现接口
package com.chongdian.api.service;
public interface AsyncService {
void async();
}
4、 实现类
package com.chongdian.api.service.impl;
import com.chongdian.api.service.AsyncService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@Service
public class AsyncServiceImpl implements AsyncService {
@Async
public void async(){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("执行了");
}
}