我有这样的代码:
URL url = new URL(endPoint);
connection = (HttpURLConnection) url.openConnection();
在一个方法中。 endPoint
用于为每个方法调用更改(毕竟 endPoint
是方法参数)。因为所有的 endPoint
都启用了 ssl,我觉得做一个 openConnection()
是一个昂贵的。
我想创建一个连接池。我用了commons-pool jar 。我已经像这样编码到这里了:
class AuthenticationFactory extends BasePoolableObjectFactory<HttpURLConnection> {
public HttpURLConnection makeObject() {
return (HttpURLConnection) new URL("someting").openConnection();
}
public void passiveObject(HttpURLConnection conn)
{
conn.close();
}
}
makeObject
创建新连接,passiveObject
关闭现有连接。但我对此感到震惊。如何在不知道我的 endPoint
的情况下打开 makeObject
中的连接。
我是否遗漏了连接池的概念?
请帮帮我。
最佳答案
我不明白你想做什么。首先,HttpURLConnection
在后台使用池来重用现有的 TCP 连接,这正是您通常想要的。
此外,对于 ssl
连接,甚至重用连接也没有意义,因为每个连接对于每个客户端都是唯一的(因为它是安全的...)
关于java - 如何使用公共(public)池创建连接池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13776072/