Spring5のアノテーションでhello worldを表示するサンプルです。
XML(applicationContext.xml)は使用しません。
確認環境 ・Spring 5.2.9 ・JDK 11.0.2 ・Eclipse 4.17 |
目次
サンプル | 環境 |
1.MainController.java | |
2.TestConfig.class | |
3.ISyain.java | |
4.Syain.java | |
参考 | pom.xml |
環境
今回作成したファイルです。
最初にMainController.javaを起動します。
次にTestConfig.javaで@Componetが付与されたクラスをDIコンテナにbeanとして登録し
context.getBeanでbean(インスタンス)を取得してメソッドを実行します。
1.MainController.java
package com.example.demo;
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行目は、TestConfig.classを読み込みます。
11行目は、context.getBeanでbean(インスタンス)を取得しています。変数のデータ型はインターフェースです。
2.TestConfig.java
package com.example.demo;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.example.demo")
public class TestConfig {
}
@Configurationは、設定クラスであることを示しています。
@ComponentScanは、対象のパッケージ配下にある@Componentが付与されたクラスを探してBeanとしてDIコンテナに登録します。
3.ISyain.java
インターフェースです。
package com.example.demo;
public interface ISyain {
String getHello();
}
4.Syain.java
上記インターフェースを実装しています。
package com.example.demo;
import org.springframework.stereotype.Component;
@Component
public class Syain implements ISyain {
@Override
public String getHello() {
return "Hello World!";
}
}
@Componentは、このクラスはBeanとしてDIコンテナに登録する対象であることを意味します。
pom.xml
上記で使用したpom.xmlです。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
</dependencies>
https://spring.pleiades.io/spring-framework/docs/current/javadoc-api/overview-summary.html
関連の記事