2017-02-23 17 views
0

jsf2アプリケーションをmanaged beansからCDIに変換しようとしています。CDIプロデューサのメリット

私はCDIの利点を学び、発見しています。それは素晴らしいようですが、producerと私が理解していないものがあります。

CDI私が読む利点の1つは、couplingを減らすことです。私はインターフェイス、いくつかの実装、@default@alternate@injectでいくつかの実験を行った。そしてそれは仕事をしています。その場合、私はカップリングの「減少」を見ることができます。

しかし、ロギングのためにプロデューサを実装するとき、私はそれを見ません。

今私はCDIで

Logger log = LoggerFactory.getLogger(MyClass.class); 

のようなものを使用しているため、プロデューサーを作成した後、私は

@Inject 
Logger logger; 

を持って[OK]を、それは短いですが、Loggerクラスがまだ例えばに連結されていますlog4j。

他のロガーライブラリを使用したい場合、私はまだすべてのクラスを変更する必要があります。

私には分かりませんでしたか?

答えて

2

あなたは悪いことではありません。あなたが使用するロガーを抽象化するのに役立ちます。 しかし、slf4j(https://www.slf4j.org/)やcommons-loggingなどのロギングアダプタを使用する必要があります。これは、異なるロガーの実装(log4jなど)の選択に役立ちますが、同じロギングインターフェイスを維持するのに役立ちます。

次に、CDIで単一のプロデューサメソッドを自由にカスタマイズできます。

関連する問題