在Spring EL中,您可以使用' 点(。) '符号引用bean和嵌套属性。 例如,“ bean.property_name ”。
public class Customer {
@Value("#{addressBean.country}")
private String country;
在上面的代码片段中,它将“ addressBean ” bean中“ country ”属性的值注入到当前的“ customer ”类中的“ country ”属性中。
注释中的Spring EL
请参见下面的示例,向您展示如何使用SpEL引用bean,bean属性以及它的方法。
package com.mkyong.core;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("customerBean")
public class Customer {
@Value("#{addressBean}")
private Address address;
@Value("#{addressBean.country}")
private String country;
@Value("#{addressBean.getFullAddress('mkyong')}")
private String fullAddress;
//getter and setter methods
@Override
public String toString() {
return "Customer [address=" + address + "\n, country=" + country
+ "\n, fullAddress=" + fullAddress + "]";
}
}
package com.mkyong.core;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("addressBean")
public class Address {
@Value("Block ABC, LakeView")
private String street;
@Value("98700")
private int postcode;
@Value("US")
private String country;
public String getFullAddress(String prefix) {
return prefix + " : " + street + " " + postcode + " " + country;
}
//getter and setter methods
public void setCountry(String country) {
this.country = country;
}
@Override
public String toString() {
return "Address [street=" + street + ", postcode=" + postcode
+ ", country=" + country + "]";
}
}
运行
Customer obj = (Customer) context.getBean("customerBean");
System.out.println(obj);
输出量
Customer [address=Address [street=Block ABC, LakeView, postcode=98700, country=US]
, country=US
, fullAddress=mkyong : Block ABC, LakeView 98700 US]
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="address" value="#{addressBean}" />
<property name="country" value="#{addressBean.country}" />
<property name="fullAddress" value="#{addressBean.getFullAddress('mkyong')}" />
</bean>
<bean id="addressBean" class="com.mkyong.core.Address">
<property name="street" value="Block ABC, LakeView" />
<property name="postcode" value="98700" />
<property name="country" value="US" />
</bean>
</beans>
下载源代码
下载它– Spring3-EL-Bean-Reference-Example.zip (6 KB)
翻译自: https://mkyong.com/spring3/spring-el-bean-reference-example/