オブジェクトをサーブレットに注入する方法は?
つまり、サーブレットはサーブレット コンテナーによってインスタンス化されるため、コンストラクター DI は使用できません。
また、サーブレットにセッターベースの DI を実装する良い方法もわかりません。
サーブレットリスナーを使用する必要がありますか? ベストプラクティスはありますか?
PS私はSpringもGuiceも他のDIフレームワークも持っていません。手動の依存性注入に興味があります。
オブジェクトをサーブレットに注入する方法は?
つまり、サーブレットはサーブレット コンテナーによってインスタンス化されるため、コンストラクター DI は使用できません。
また、サーブレットにセッターベースの DI を実装する良い方法もわかりません。
サーブレットリスナーを使用する必要がありますか? ベストプラクティスはありますか?
PS私はSpringもGuiceも他のDIフレームワークも持っていません。手動の依存性注入に興味があります。
これは Servlet 3.0 で可能です。アプリが起動する直前に、プログラムで ServletContext のaddServlet(String, Servlet)メソッドを使用して Servlet インスタンスを登録するServletContextListenerを登録します。サーブレット インスタンスを自分でインスタンス化するため、適切なコンストラクターを与えて依存関係を注入できます。
少し前に、基本的なテクニックを説明する例を作成しました。
JNDI、Java Naming and Directory Interfaceを使用して、それ@Resource
を注入することができます。
いくつかの IOC コンテナー (Spring、Guice) によって作成/管理されるサービスを使用できます。
ContextAware 実装を作成し、必要に応じてサーブレットから Bean を引き出すことができます