导包
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>10.0.1</version>
</dependency>
package com.async.demo.controller;
import com.google.common.util.concurrent.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.concurrent.*;
@RestController
@RequestMapping("/asyncDemo")
public class AsyncDemoController {
@GetMapping("/testGuava")
public String testGuava(){
Callable<Boolean> callable = () -> {
System.out.println("test guava");
return null;
};
ExecutorService executor = Executors.newFixedThreadPool(5);
ListeningExecutorService listenableExecutorService = MoreExecutors.listeningDecorator(executor);
ListenableFuture<Boolean> listenableFuture = listenableExecutorService.submit(callable);
Futures.addCallback(listenableFuture, new FutureCallback<Boolean>() {
@Override
public void onSuccess(Boolean aBoolean) {
System.out.println("test ok!");
}
@Override
public void onFailure(Throwable throwable) {
System.out.println("test fail!");
}
}, listenableExecutorService);
return "ok";
}
}
参考:https://blog.youkuaiyun.com/qq_42651904/article/details/109426517