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();
  }
}

親クラスでは、ClassBautowired し、このクラスには 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 から ClassAbean を取得します。 その後、bean からメソッド getMSG() を呼び出しました。

出力:

This is autowired

この記事で共有するコード スニペットは、Java Spring Boot フレームワークで記述されていることに注意してください。 このプログラムを実行する前に、IDE に必要なプラグインをインストールする必要があります。