定義ファイルによるBeanの利用
Beanクラスを作成する
Bean定義ファイルで呼び出すクラスとメソッドを記述します。
ここでは、簡単なサンプルとして「クライアントにテキストを出力するBean」を作成します。
HelloBean.java
public class HelloBean {
public void hello(){
System.out.println("Hello Spring Framework!");
System.out.println("これは、Beanを呼び出し出力したテキストです。");
}
}
Bean定義ファイルの作成
次に、HelloBeanクラスのインスタンスをhellobeanという名前でBeanに登録します。
「bean」タグを使ってBeanの名前とクラス名を登録し、生成・取得できます。
タグの説明
<beans …略… >
<bean id=名前 class=クラス名 />
</beans>
bean-conf.xml
package com.tuyano.sample;
<?xml version="1.0" encoding="UTF-8"?>
<bean
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="hellobean" class="com.tuyano.sample.HelloBean"/>
</beans>
AppクラスからのBeanの利用
最後に、AppクラスからBeanを利用していきます。
定義ファイルから「AplicationContext」オブジェクトを取り出して、取得したオブジェクトからクラスを呼び出してください。
呼び出したクラスをキャストすることで、オブジェクトとして利用できるようになります。
App.java
package com.tuyano.sample;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.
ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
AplicationContext app = new ClassPathXmlAplicationContext("bean-conf.xml");
HelloBean bean1 = (HelloBean)app.getBean("hellobean");
System.out.println("HelloBean#hello:: "):
bean1.hello();
}
}
プロパティを利用する
XMLによるBean定義ファイルではフィールドについても記述することができます。
フィールドは定義ファイルにプロパティとして記述することができます。
HelooBean.java
package com.tuyano.sample;
public class HelloBean {
private String title;
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public void hello(){
System.out.println(this.getTitle());
System.out.println(this.getMessage));
}
}
Bean定義ファイル
title,message フィールドを「プロパティ」タグを使って記述していきます。
valueに設定した値で変数を初期化することができます。
<property name="プロパティ名" value="値" />
bean-conf.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans …略… >
<bean id="hellobean" class="com.tuyano.sample.HelloBean">
<property name="title" value="TITLE" />
<property name="message" value="this is message. " />
</bean>
</beans>
Appクラスによる呼び出し
App.java
package com.tuyano.sample;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("bean-conf.xml");
HelloBean bean1 = (HelloBean)app.getBean("hellobean");
bean1.setTitle("Spring Sample");
bean1.setMessage("これはSpringのサンプルBeanです。");
bean1.hello();
}
}
結果
Spring Sample
これはSpringのサンプルBeanです。
[SpringFrameworkの学習記録に戻る](https://qiita.com/kent2980/private/171b6fcaa008dd6827d8)