Guice to Inject Providersを既存のJava Webアプリケーションのサーブレット部分に正常に使用しましたが、ビジネスレイヤー(非サーブレットJavaクラス)を使用します。Java Web AppのビジネスレイヤへのGuice注入
私はインジェクタを注入していますが、ガイスのドキュメントを含め、いくつかの場所でハックのように思えますが、あまりそれをしないと言います。
私の質問は、非サーブレット/フィルタクラスがGuiceServletContextListenerを拡張するために使用するクラスで作成されたインジェクタにアクセスできるようにJava Webアプリケーションをブートストラップする場所ですか?注射器を注射せずにこれらのクラスを注射可能にする方法はありますか?
ご連絡ありがとうございます。ご要望があればお知らせください。
編集:
私はシンプルなロガーでこれを行うにしようとしています、これまでのところ、私の サーブレットでは、私が呼ぶ:
@Inject
private static org.slf4j.Logger log;
次のように注入がMyLoggerModuleに設定されています( )ServletModuleと createInjector呼び出しである:
@Override
public void configure() {
bindListener(Matchers.any(), new SLF4JTypeListener()); // I
built my own SLF4JTypeListener...
}
これはすべてのサーブレットで完璧に動作しますが、フィールド注入を行いますサーブレットまたはフィルタではないクラスによって呼び出されたときには、 は機能しません。
残念ながら、サードパーティのAPIであるため、オブジェクトファクトリを編集することはできません。ご回答いただきありがとうございます。 – oberger
@OwenBerger大歓迎ですが、編集できないのは残念です。 – dlamblin