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三元運算(if-then-else)實例
Spring EL支持三元運算符,執行「if then else」條件檢查。 例如,
condition ? true : false
Spring EL以註解形式
Spring EL三元運算符可使用@Value註解。在這個例子中,如果「itemBean.qtyOnHand」小於100,則設置「customerBean.warning」爲true,否則將其設置爲false。
package com.yiibai.core;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("customerBean")
public class Customer {
@Value("#{itemBean.qtyOnHand < 100 ? true : false}")
private boolean warning;
public boolean isWarning() {
return warning;
}
public void setWarning(boolean warning) {
this.warning = warning;
}
@Override
public String toString() {
return "Customer \[warning=" + warning + "\]";
}
}
package com.yiibai.core;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("itemBean")
public class Item {
@Value("99")
private int qtyOnHand;
public int getQtyOnHand() {
return qtyOnHand;
}
public void setQtyOnHand(int qtyOnHand) {
this.qtyOnHand = qtyOnHand;
}
}
輸出
Customer [warning=true]
Spring EL以XML形式
請參閱在XML文件定義bean的等效版本。
<bean id="customerBean" class="com.yiibai.core.Customer">
<property name="warning"
value="#{itemBean.qtyOnHand < 100 ? true : false}" />
</bean>
<bean id="itemBean" class="com.yiibai.core.Item">
<property name="qtyOnHand" value="99" />
</bean>
輸出結果
Customer [warning=true]
在XML中,需要小於運算符使用"<"替換「<」。