3

RestClientリモート JSON API への接続に使用しています。以前、Spring 3.0 では、Commons HTTPClient を使用していました。古いマルチスレッド接続マネージャーで多くのロックが発生したため、パフォーマンスが低いことがわかりました。

ロックを修正したように見えるので、Apache HttpComponents 4.2 を試してみたいと思います。さまざまなクラスに対して自動配線されるPoolingClientConnectionManagerのコンストラクターパラメーターとしてを使用したいと思います。DefaultHttpClient

PoolingClientConnectionManager課題は、接続マネージャーをセットアップすることです。JSON API プロバイダーへの多数の同時接続が必要です。これらはHttpRouteオブジェクトを使用してホスト名を表します。ただし、http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/conn/PoolingClientConnectionManager.htmlで説明されているようにPoolingClientConnectionManager、メソッドを使用しsetMaxPerRoute(HttpRoute, int maxConnections)ます。

単純なセッターを使用しないため、接続マネージャーを Spring context.xml ファイルに設定するにはどうすればよいですか?

4

2 に答える 2

1

PoolingClientConnectionManager を拡張してラップし、ルート/最大値を表す Bean を使用してセッターを作成するのはどうですか。すなわち。

// Your bean
public class RouteMax() {
  private HttpRoute httpRoute;
  private int max;
  ... setters/getters
}

// Extending the PoolingClientConnectionManager
...
public class CustomPoolingClientConnectionManager extends PoolingClientConnectionManager {
...
public setRouteMax(RouteMax routeMax) {
  super.setMaxPerRoute(routeMax.getHttpRoute(), routeMax.getMax());
}

..次に、Spring 構成で、RouteMax Bean を使用して routeMax プロパティを設定できます。

于 2012-07-26T18:09:24.363 に答える