我有目前的方法:
private int getStatusCode(String path) throws IOException {
HttpClient client = HttpClients.createDefault();
HttpGet method = new HttpGet(path);
HttpResponse httpResponse = client.execute(method);
return httpResponse.getStatusLine().getStatusCode();
}
我想把它放在Spring @Service
课程中。然后我想将该类用作@Autowired
。我知道Spring bean是单例,因此我的自动化类只有一个实例。我有不同的@Controller
类使用该服务。并发访问是否会导致我的问题?例如,覆盖另一个请求的路径?
答案 0 :(得分:0)
并发访问是否会导致我的问题?
虽然它是单例,但并不会导致任何并发问题,因为方法getStatusCode
仅使用
例如,覆盖另一个请求的路径?
不是问题,因为每个方法调用都来自不同的线程,并且方法的参数(如路径变量)存储在堆栈中,这对于每个线程都是不同的。
作为一个实时示例,我们看一下Servlet。无论请求数量多少,servlet容器都只创建一个servlet实例。所有请求线程都通过将自己的(doGet(...) or doPost(...))
和HttpServletRequest
对象传递给上述方法来访问此单个servlet实例的HttpServletResponse
方法,并且它不会导致混淆请求/回复。