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”>
;
<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]….