Spring Bean引用例子
如何注入值到Spring bean屬性
Spring bean加載多個配置文件
Spring內部bean實例
Spring Bean作用域實例
Spring集合 (List,Set,Map,Properties) 實例
Spring ListFactoryBean實例
Spring SetFactoryBean實例
Spring MapFactoryBean例子
Spring注入日期到bean屬性-CustomDateEditor
Spring PropertyPlaceholderConfigurer實例
Spring bean配置繼承
Spring依賴檢查
Spring使用@Required註解依賴檢查
Spring自定義@Required-style註解
Spring Bean InitializingBean和DisposableBean實例
Spring Bean init-method 和 destroy-method實例
Spring @PostConstruct和@PreDestroy實例
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]