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