我们有一个@ApplicationScoped bean,我们想要使用一个注入的RestEasy客户端,我试图找出实际连接发生的位置,连接池何时进入,以及哪个对象进入要注入的链条。我的意思是,如果每次调用.build都会创建一个新的连接池,那么注入ResteasyClientBuilder是没有意义的。
这是我创建构建器的方式:
ResteasyClientBuilder clientBuilder = new ResteasyClientBuilder().asyncExecutor(es).connectionPoolSize(50);
我知道在内部这是使用PoolingClientConnectionManager,它是线程安全的,所以这将与ApplicationScoped兼容。
以下是进一步的通话,包括GET通话(doSomething)
ResteasyClient client = clientBuilder.build();
IAction actionService = client.target(URI.create("http://" + actionHost + "/action")).proxy(IAction.class);
XXXResponse response = actionService.doSomething(a, b);
实际连接发生在哪里,它从池中弹出并释放回池中。即我可以在上面注入actionService,对doSomething(或“服务”上的其他方法)的多线程调用每次从池中获取一个新连接吗?