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定義です。インスタンスを生成して返すメソッドを作成します。
関連の記事