2012-01-05 9 views
6

私はオンラインSpring MVCのチュートリアルを行っていた間、私はのpom.xmlをコピーし、それが持っていた:私はpom.xmlにjavax.injectを持っていますが、それを自動的に使用するのですか?

 <!-- @Inject --> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 

私は春には独自の依存性の注入が内蔵されています理解し何より、これはデフォルトを上書きし、 javax.injectを使用しますか?

私はまた、コードやxmlの設定をせずに、pomの中でslf4jを見たことがあります。

これはどのようにカバーの下で動作しますか?springはlibのフォルダを調べ、上書き可能なlibが見つかった場合はそれを行いますか?

+0

@PostConstructのようにSpringが認識して利用できるアノテーションです。あなたの質問がslf4jについてどんなものか分かりません。それは他のログライブラリを取り巻くファサードです。 –

+0

私は '推測(分からない)' javax.injectとSpring依存関係注入は、同じアクション(依存関係注入)を実行する2つの異なるものです。 –

答えて

10

javax.inject

<dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
     <version>1</version> 
    </dependency> 

のためのあなたのポンポンでの依存性は春とは何の関係もありません。プロジェクトへの依存関係がjavax.injectになります。名前がjavax.inject-1.jarの瓶。このジャーはSpringでサポートされている@Injectアノテーションを使用する場合に必要です。

必要に応じて@ Autowired/@ Resource/@ Injectを使用できます。その相違点についてはhereWhat is the difference between @Inject and @Autowired in Spring Framework? Which one to use under what condition?のディスカッションを参照してください。

slf4jはlog4jのようなフレームワークより抽象化されており、ロギングフレームワークの実行時プラグインを可能にしています。 Spring-OSGI、Hibernateはすべてこれを内部的に使用します。だからこそ、あなたはあなたのポンに依存しているのです。これは物事をクリアすることを願っています。

3

注射により、JSR 330がサポートされます。注釈注釈を使用すると、アプリケーションが春に縛られることはありません。Java EE 6またはguiceまたは仕様をサポートする他のプロバイダに切り替えることができます。

注入またはスプリング注入(あるいはその両方)を使用できます。

1

@Aravindによると、javax.injectの依存関係はSpringとは関係ありません。それは

春が自分@Autowired注釈と同義@Injectを使用してJava EE 6(JSR-299)に導入されたJavaのCDI規格の一部であります、注釈@Injectを取得するために使用されます。
および@Injectの2つのアノテーションは、Springが独自のアノテーションに加えていくつかのJSR-299アノテーションをサポートすることを決定したのと同じ方法で動作します。 Java用 簡易ログファサード(SLF4J)に来


Javaまたは(SLF4J)のための簡単なロギングファサードは、例えば、様々なロギングフレームワークのための単純な ファサード又は抽象として機能します java.util.logging、log4j、およびlogbackを使用して、デプロイ時にエンドユーザが希望のログフレームワーク をプラグインできるようにします。

関連する問題