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();
}
}
親クラスでは、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 に必要なプラグインをインストールする必要があります。
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