0

我有这样的代码:

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关闭现有连接。但我对此感到震惊。如何在makeObject不知道我的endPoint.

我是否错过了连接池的概念?

请帮帮我。

4

1 回答 1

1

我不明白你想做什么。首先,它在HttpURLConnection后台使用一个池来重用现有的 TCP 连接,这是您通常想要的。
此外,对于ssl连接,甚至重用连接也没有意义,因为每个连接对于每个客户端都是唯一的(因为它是安全的......)

于 2012-12-08T12:04:32.173 回答