Spring EL方法調用實例

Spring表達式語言(使用SpEL)允許開發人員使用表達式來執行方法和將返回值以注入的方式到屬性,或叫作「使用SpEL方法調用」。

Spring EL在註解的形式

瞭解如何實現Spring EL方法調用與@Value註釋。

package com.yiibai.core;

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

@Component("customerBean")
public class Customer {

@Value("#{'yiibai'.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.yiibai.core;

import org.springframework.stereotype.Component;

@Component("priceBean")
public class Price {

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

}

輸出

Customer [name=YIIBAI, amount=199.09]

一點解釋

在字串文本上調用 toUpperCase()方法。

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

在 ‘priceBean‘ Bean上調用getSpecialPrice() 方法

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

Spring EL在XML的形式

請參閱在XML文件定義bean的等效版本。

<bean id="customerBean" class="com.yiibai.core.Customer">
    <property name="name" value="#{'yiibai'.toUpperCase()}" />
    <property name="amount" value="#{priceBean.getSpecialPrice()}" />
</bean>

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

輸出

Customer [name=YIIBAI, amount=199.09]

下載代碼 –   http://pan.baidu.com/s/1mhdwodU