Picocontainer Web (picocontainer-web-core-2.5.1.jar) を使用しようとしています。
すべてを構成し、コンテナから何かを取得しようとするまで、すべてが正常に機能することを確認しました... :p
私は、次のような PicoServletContainerFilter クラスの静的メソッド getRequestComponentForThread(Class type) を使用する必要があります。
public static Object getRequestComponentForThread(Class type) {
MutablePicoContainer requestContainer = ServletFilter.currentRequestContainer.get();
MutablePicoContainer container = new DefaultPicoContainer(requestContainer);
container.addComponent(type);
return container.getComponent(type);
}
しかし、ご覧のとおり、そのメソッドでは DefaultPicoContainer の新しいインスタンスが作成され、取得しようとしている型が登録されています。
- タイプがクラスの場合 - 親コンテナからキャッシュされたものではなく、新しいインスタンスが作成されて返されます...
- タイプがインターフェースの場合 - 3 行目 (addComponent) で実行時例外 (「'ExampleInterface' はインスタンス化できません」) がスローされます。
そして私の質問は:このライブラリを使用する方法? 私はそれを理解していると確信していましたが、この1つの方法の実装は私の心を吹き飛ばします...