HOWTO · Java
Java Spring Boot のオートワイヤー
このチュートリアルでは、Java Spring Boot の @autowire アノテーションについて説明します。
Spring Boot は、Java の一般的なフレームワークです。 Spring Boot で最も一般的に使用されるアノテーションは @Autowired で、主に Bean を自動的に収集するために使用されます。
この記事では、Java Spring Boot の @Autowired について説明します。
@Autowired 注釈に使用されるモード
以下は、@Autowired アノテーションで一般的に使用されるモードです。
| モード | 説明 |
|---|---|
no |
これは autowiring のデフォルト モードであり、デフォルトで autowiring を無効にします。 |
byName |
このモードは、Bean の name に従ってオブジェクトの依存関係を注入します。 |
byType |
このモードは、Bean の type に従ってオブジェクトの依存関係を注入し、setter メソッドとも呼ばれます。 |
constructor |
このモードは、constructor を呼び出すことによってオブジェクトの依存関係を注入します。 |
Java Spring Boot で @Autowired を利用する
まず、親クラスから autowired したい ClassB という名前のクラスを作成します。 このクラスのコード例は次のようになります。
package com.sample.demo;
import org.springframework.stereotype.Component;
@Component
public class ClassB {
void showMSG() {
System.out.print("This is autowired !!!");
}
}
この子クラスには showMSG() という名前のメソッドが含まれており、アノテーション @Componant を使用して bean コンポーネントとして宣言しました。 次に、その親クラスを見ていきます。
以下は、親クラスのコードです。
package com.sample.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class ClassA {
@Autowired ClassB b;
void getMSG() {
b.showMSG();
}
}
親クラスでは、ClassB を autowired し、このクラスには getMSG() という名前のメソッドが含まれています。 注釈 @Componant を使用して、このクラスを bean コンポーネントとして宣言しました。
それでは、ハンドラー クラスを見てみましょう。
package com.sample.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(DemoApplication.class, args);
ClassA a = context.getBean(ClassA.class);
a.getMSG();
}
}
ここでは、context から ClassA の bean を取得します。 その後、bean からメソッド getMSG() を呼び出しました。
出力:
This is autowired
この記事で共有するコード スニペットは、Java Spring Boot フレームワークで記述されていることに注意してください。 このプログラムを実行する前に、IDE に必要なプラグインをインストールする必要があります。