Spring 5.3.23 applicationContext.xmlでコンストラクタを行うサンプル
環境
Spring 5.3.23
JDK8
Eclipse 4.14.0
操作方法
1.実行ファイル(ArkgameApp.java)
package com.arkgame.test; import org.springframework.context.support.ClassPathXmlApplicationContext; public class ArkgameApp { public static void main(String[] args) { //applicationContext.xmlを読み込み ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //DIコンテナからbeanを取得 UserService cft= (UserService)context.getBean("testUserService"); System.out.println("情報: "+cft.getUser()); context.close(); } }
説明
new ClassPathXmlApplicationContext(“applicationContext.xml");
applicationContext.xmlを読み込みます。
context.getBean(bean名)
2.UserServiceクラスの定義(UserService.java)
package com.arkgame.test; public class UserService { //クラスUserのインスタンス User user; /**クラスのコンストラクタ */ public UserService(User user) { this.user = user; } public String getUser() { //インスタンスuserの関数を呼び出す return user.geUserName(); } }
3.Userクラスの定義(User.java)
package com.arkgame.test; public class User { //文字列を返す public String geUserName() { return "品川 太郎"; } }
4.設定ファイル(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"> <!-- Userクラスのbean(インスタンス)testUser --> <bean id="testUser" class="com.arkgame.test.User"></bean> <!-- UserServiceクラスのbean(インスタンス) testUserService --> <bean id="testUserService" class="com.arkgame.test.UserService"> <!-- constructor-argタグを使用して引数Userクラスを指す --> <constructor-arg ref="testUser"></constructor-arg> </bean> </beans>
説明
<bean id="bean名" class="パッケージ名">
<constructor-arg ref="コンストラクタの引数"></constructor-arg>
</bean>
5.実行確認
「ArkgameApp.java」を右クリックして「実行」->「Javaアプリケーション」をクリックするとコンソールに「情報: 品川 太郎」と表示されます。