Spring Java Configでhello world

SpringのJavaベースConfigurationでhello worldを表示するサンプルです。
JavaベースConfigurationは、Spring 3.0から利用可能になりました。
(確認環境:Spring 5.3.7、JDK 11、STS 4)

目次

サンプル Spring Java Configでhello worldを表示する
  pom.xml
  1.起動するファイル(StartApplication.java)
  2.設定ファイル(TestConfig.java)
  3.beanとして使用(SyainService)
  実行する

Spring Java Configでhello worldを表示する

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

構築と実行

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

githubにコードがあります。
https://github.com/ut23405/spring5/tree/master/spring-javaconfig-hello

 

pom.xml

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

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

5行目のspring-contextは、applicationContext.xmlの読み込みや@Componentで使用します。

 

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

package com.example.test1;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class StartApplication {
	public static void main(String[] args) {
		AnnotationConfigApplicationContext context 
				= new AnnotationConfigApplicationContext(TestConfig.class);
		
		SyainService syainService = context.getBean(SyainService.class);
		
		System.out.println(syainService.getHello()); // Hello World!
		context.close();
	}
}

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

 

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

package com.example.test1;

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

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

Java Configクラスです。@Configurationは、設定クラスであることを示しています。
component-scanで指定した配下の@Component等のアノテーションが付いたクラスがscanの対象になります。

 

3.beanとして使用(SyainService)

SyainService.java

package com.example.test1;
import org.springframework.stereotype.Component;

@Component
public class SyainService {
	public String getHello() {
		return "Hello World!";
	}
}

4行目に@Componetを追加しています。
このクラスはBeanとしてDIコンテナに登録する対象であることを意味します。

実行する

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

 

※設定ファイルでcomponent-scanしない場合は、@Beanを指定します。
その場合はSyainServiceクラスに@Componentは不要です。

package com.example.test1;

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

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

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

関連の記事

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

△上に戻る