Spring ELでは、 ‘

ドット(。)

‘記号を使ってBeanとネストされたプロパティを参照することができます。たとえば、 ”

bean.property__name

“と入力します。

public class Customer {

    @Value("#{addressBean.country}")
    private String country;

上記コードスニペットでは、 ”

address

bean

“の ”

country

“プロパティの値を現在の ”

customer

“クラス、 ”

country ** “プロパティに注入します。

AnnotationのSpring EL

以下の例を参照して、SpELを使用してBean、Beanプロパティ、およびそのメソッドを参照する方法を説明します。

package com.mkyong.core;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("customerBean")
public class Customer {

    @Value("#{addressBean}")
    private Address address;

    @Value("#{addressBean.country}")
    private String country;

    @Value("#{addressBean.getFullAddress('mkyong')}")
    private String fullAddress;

   //getter and setter methods

    @Override
    public String toString() {
        return "Customer[address=" + address + "\n, country=" + country
                + "\n, fullAddress=" + fullAddress + "]";
    }

}

package com.mkyong.core;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("addressBean")
public class Address {

    @Value("Block ABC, LakeView")
    private String street;

    @Value("98700")
    private int postcode;

    @Value("US")
    private String country;

    public String getFullAddress(String prefix) {

        return prefix + " : " + street + " " + postcode + " " + country;
    }

   //getter and setter methods

    public void setCountry(String country) {
        this.country = country;
    }

    @Override
    public String toString() {
        return "Address[street=" + street + ", postcode=" + postcode
                + ", country=" + country + "]";
    }

}


それを実行します

       Customer obj = (Customer) context.getBean("customerBean");
       System.out.println(obj);


出力

Customer[address=Address[street=Block ABC, LakeView, postcode=98700, country=US], country=US
, fullAddress=mkyong : Block ABC, LakeView 98700 US]....

===  XMLのSpring EL

Bean定義XMLファイルの同等のバージョンを参照してください。

<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-3.0.xsd”&gt

;

<bean id="customerBean" class="com.mkyong.core.Customer">
    <property name="address" value="#{addressBean}"/>
    <property name="country" value="#{addressBean.country}"/>
    <property name="fullAddress" value="#{addressBean.getFullAddress('mkyong')}"/>
</bean>

<bean id="addressBean" class="com.mkyong.core.Address">
    <property name="street" value="Block ABC, LakeView"/>
    <property name="postcode" value="98700"/>
    <property name="country" value="US"/>
</bean>

</beans>

=== ソースコードをダウンロードする

ダウンロードする - リンク://wp-content/uploads/2011/06/Spring3-EL-Bean-Reference-Example.zip[Spring3-EL-Bean-Reference-Example.zip](6 KB)

link://tag/spring-el/[spring el]link://tag/spring3/[spring3]