Java Spring Boot のオートワイヤー

MD Aminul Islam 2023年10月12日
  1. @Autowired 注釈に使用されるモード
  2. Java Spring Boot で @Autowired を利用する
Java Spring Boot のオートワイヤー

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 に必要なプラグインをインストールする必要があります。

著者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn