Spring5 Java Configでhello world

Spring5のJavaベースConfigurationでhello worldを表示するサンプルです。
次にアノテーションベースConfigurationでhello worldを表示します。

確認環境
・Spring 5.3.7
・JDK 11.0.11
・STS 4 / Eclipse 4.17

目次

サンプル Spring5 Java Configでhello worldの概要
  pom.xml
  1.起動するファイル(MainController.java)
  2.設定ファイル(TestConfig.java)
  3.beanとして使用(ISyain,Syain)
  実行する
アノテーションベースConfigurationを使用する(@Component)

Spring5 Java Configでhello worldの概要

今回作成したファイルです。

処理の流れ

1.JavaベースConfigurationでhello worldを表示する。
2.一部ファイルを修正してアノテーションベースConfigurationでhello worldを表示する。

構築と実行

1.Javaプロジェクトを作成。
2.Mavenプロジェクトに変換。
Eclipse JavaプロジェクトからMavenプロジェクトに変換
3.pom.xmlでspringを取得。
4.javaファイルを作成する。
5.実行して確認する。

githubにコードがあります。

・JavaベースConfiguration
https://github.com/ut23405/spring5/tree/master/spring5-javaconfig-hello

・アノテーションベースConfiguration
https://github.com/ut23405/spring5/tree/master/spring5-javaconfig-annotation-hello

pom.xml

以下のコードをpom.xmlの<project>タグ内に貼り付けます。
<dependencies>が既にある場合は2~13行目までをコピペします。
保存するとダウンロードが始まります。右下に進捗バーが出ます。

<dependencies>
	<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-beans</artifactId>
	    <version>5.3.7</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-context</artifactId>
	    <version>5.3.7</version>
	</dependency>
</dependencies>

 

1.起動するファイル(MainController.java)

package com.example.test1;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class MainController {
	public static void main(String[] args) {

		AnnotationConfigApplicationContext context = 
				new AnnotationConfigApplicationContext(TestConfig.class);

		ISyain syain = context.getBean(Syain.class);

		System.out.println(syain.getHello()); //Hello World!
		context.close();
	}
}

9行目は、設定ファイルからDIコンテナを生成しています。
Javaの設定ファイルを使用するのでJavaベースConfigurationと呼ばれます。
11行目は、context.getBeanでDIコンテナからbean(インスタンス)を取得しています。
変数のデータ型はインターフェースです。

2.設定ファイル(TestConfig.java)

package com.example.test1;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TestConfig {
	@Bean
	Syain syain() {
		return new Syain();
	}
}

Java Configクラスです。@Configurationは、設定クラスであることを示しています。

8行目は、@Bean定義です。インスタンスを生成して返すメソッドを作成します。
→JavaベースConfigurationです。

3.beanとして使用(ISyain,Syain)

ISyain.java

インターフェースです。

package com.example.test1;

public interface ISyain {
	public String getHello();
}

Syain.java

上記インターフェースを実装しています。

package com.example.test1;

public class Syain implements ISyain {
	@Override
	public String getHello() {
		return "Hello World!";
	}
}

実行する

MainController.javaを右クリックして「実行」→「Javaアプリケーション」をクリックするとコンソールにHello World!と表示されます。

アノテーションベースConfigurationを使用する(@Component)

Java Configクラスにcomponent-scanと対象のパッケージを記述し、対象のクラスに@Componetを追加します。Java Configファイルにbeanを1つずつ定義する必要がなくなります。

以下のファイルを修正します。

1.設定ファイル(TestConfig.java)

java configファイルに@ComponentScanを追加します。

package com.example.test1;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.example.test1")
public class TestConfig {
	
}

@ComponentScanは、対象のパッケージ配下にある@Component等が付与されたクラスを探してBeanとしてDIコンテナに登録します。beanを1つずつ定義する必要がなくなります。
→アノテーションベースConfigurationです。

2.beanとして使用(Syain.java)

クラスの前に@Componentを追加します。

package com.example.test1;

import org.springframework.stereotype.Component;

@Component
public class Syain implements ISyain {
	@Override
	public String getHello() {
		return "Hello World!";
	}
}

@Componentは、このクラスはBeanとしてDIコンテナに登録する対象であることを意味します。

関連の記事

SpringBoot hello worldを表示するサンプル
Spring5 XMLでコンストラクタを行う

△上に戻る