20
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

XMLによるBeanの記述

Last updated at Posted at 2018-04-19

定義ファイルによるBeanの利用

  1. Beanクラスの生成・取得
  2. プロパティの利用

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)
20
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?