Spring式言語(SpEL)は、開発者が式を実行し、メソッドに返された値をプロパティに注入する、つまり「

SpELメソッド呼び出し

」と呼ばれる式を使用できます。

AnnotationのSpring EL

package com.mkyong.core;

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

@Component("customerBean")
public class Customer {

    @Value("#{'mkyong'.toUpperCase()}")
    private String name;

    @Value("#{priceBean.getSpecialPrice()}")
    private double amount;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getAmount() {
        return amount;
    }

    public void setAmount(double amount) {
        this.amount = amount;
    }

    @Override
    public String toString() {
        return "Customer[name=" + name + ", amount=" + amount + "]";
    }

}

package com.mkyong.core;

import org.springframework.stereotype.Component;

@Component("priceBean")
public class Price {

    public double getSpecialPrice() {
        return new Double(99.99);
    }

}


出力

Customer[name=MKYONG, amount=99.99]....

====== 説明

** 文字列** リテラルの `` toUpperCase() `'メソッドを呼び出します。

@Value("#{'mkyong'.toUpperCase()}")
private String name;

bean '**  priceBean ** 'の `` getSpecialPrice() `'メソッドを呼び出します。

@Value("#{priceBean.getSpecialPrice()}")
private double amount;

===  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="name" value="#{'mkyong'.toUpperCase()}"/>
    <property name="amount" value="#{priceBean.getSpecialPrice()}"/>
</bean>

<bean id="priceBean" class="com.mkyong.core.Price"/>

</beans>

__出力__

Customer[name=MKYONG, amount=99.99]…​.

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

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