SpringのXMLでhello worldを表示するサンプルです。
アノテーションベースConfigurationは、Spring 2.5から利用可能になりました。
(確認環境:Spring 5.3.7、JDK 11、STS 4)
目次
サンプル | Spring XMLでhello worldを表示する |
pom.xml | |
1.XMLベースで実行する | |
2.アノテーションベースで実行する(@Component) |
Spring XMLでhello worldを表示する
このページでは以下の2つの方法を紹介します。
1.XMLベースでhello worldを表示する。
2.アノテーションベースでhello worldを表示する。Spring 2.5から利用可能です。
構築と実行
1.Javaプロジェクトを作成。
2.Mavenプロジェクトに変換。
Eclipse JavaプロジェクトからMavenプロジェクトに変換
3.pom.xmlに必要なライブラリを指定する。
4.javaファイルとxmlの設定ファイルを作成する。
5.実行して確認する。
githubにコードがあります(アノテーションベース)。https://github.com/ut23405/spring5/tree/master/spring-xml-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.XMLベースで実行する
起動するファイル(StartApplication.java)
package com.example.test1;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class StartApplication {
public static void main(String[] args) {
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
SyainService syainService
= (SyainService) context.getBean("testSyain");
System.out.println(syainService.getHello()); //Hello World!
context.close();
}
}
9行目は、applicationContext.xmlを読み込みます。
12行目は、context.getBeanでDIコンテナからbean(インスタンス)を取得しています。
testSyainは、applicationContext.xmlの7行目のbeanのIDです。
設定ファイル(applicationContext.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="testSyain" class="com.example.test1.SyainService"></bean>
</beans>
7行目のtestSyainは、beanのidです。StartApplication.javaの12行目で指定されています。
SyainService.java
package com.example.test1;
public class SyainService {
public String getHello() {
return "Hello World!";
}
}
文字列のHello Worldを返します。
実行する
StartApplication.javaを右クリックして「実行」→「Javaアプリケーション」をクリックするとコンソールにHello World!と表示されます。
2.アノテーションベースで実行する(@Component)
XMLファイルにcomponent-scanと対象のパッケージを記述し、対象のクラスに@Componetを追加します。XMLファイルにbeanを1つずつ定義する必要がなくなります。
1.StartApplication.java
package com.example.test1;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class StartApplication {
public static void main(String[] args) {
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
SyainService syainService
// = (SyainService) context.getBean("testSyain");
= context.getBean(SyainService.class);
System.out.println(syainService.getHello()); //Hello World!
context.close();
}
}
12行目をコメントにし、13行目を追加します。
2.applicationContext.xml
componentScanを追加します。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- <bean id="testSyain" class="com.example.test1.Syain"></bean> -->
<context:component-scan base-package="com.example.test1" />
</beans>
2~8行目をコピペし直します。このXMLにも意味があります。必要なものがないと動きません。
10行目をコメントにし、11行目を追加します。
component-scanは、指定した配下がscanの対象になります。
SyainService.java
@Componentを追加します。
package com.example.test1;
import org.springframework.stereotype.Component;
@Component
public class SyainService {
public String getHello() {
return "Hello World!";
}
}
5行目に@Componetを追加しています。
実行する
StartApplication.javaを右クリックして「実行」→「Javaアプリケーション」をクリックするとコンソールにHello World!と表示されます。
関連の記事