我正在使用 Spring Boot 2.2.4。
我有以下类,其中 Client 是请求范围的 bean:
@AllArgsConstructor
@Component
public class CacheLoader {
private Client client;
@Async
public void load() {
//do something else
client.execute();
}
}
load 方法在控制器中调用。请求在 execute() 方法在异步 load() 方法产生的另一个线程中启动之前完成。
仍然执行方法确实成功完成。为什么请求 Scoped bean 仍然可用,即使请求之前已经完成?
如果发送两个请求,也会发生。绑定到第二个请求的客户端是否会替换第一个请求中的客户端,以便第一个请求触发的异步方法将执行与第二个请求中的客户端的调用?