1. ホーム
  2. java

[解決済み] Spring Frameworkの@Injectと@Autowiredの違いは何ですか?どのような条件でどちらを使うか?

2022-03-18 18:26:41

質問

SpringSourceに関するブログをいくつか見ているのですが、あるブログで著者が使っているのは @Inject を使用することもできると思います。 @Autowired .

以下は、そのコードの一部です。

@Inject private CustomerOrderService customerOrderService;

との違いがよくわかりません。 @Inject@Autowired とのことですが、どなたかその違いや、どのような状況でどちらを使えばいいのか、説明していただけるとありがたいです。

どのように解決するのですか?

ここで言うのは javax.inject.Inject アノテーションを使用します。 @Inject は、Java CDI の一部です ( コンテキストと依存性注入 )規格がJava EE 6で導入されました(JSR-299)。 続きを読む . Springは @Inject アノテーションと同義に、独自の @Autowired アノテーションを使用します。

では、質問にお答えします。 @Autowired はSpring独自のアノテーションです。 @Inject はCDIと呼ばれるJava技術の一部で、Springと同様の依存性注入のための標準を定義しています。Springのアプリケーションでは、この2つのアノテーションは同じように動作します。Springは自分たちのアノテーションに加えて、いくつかのJSR-299アノテーションをサポートすることを決定しているからです。