pring配置中的bean直接引用其它bean的属性值来赋值给当前bean的属性,也可以直接调用其它bean的方法获取返回值来赋值给当前bean的属性,并且可以进行参数传递,这样可以省去在bean中注入需要获取属性值的bean。
以下是一个完整的示例:
1、需要JAVA类:
Spring配置中的bean直接引用其它bean的属性值 package com.service.test; public class Bean1 { int v1 = 1; public int getV1() { return v1; } public void setV1(int v1) { this.v1 = v1; } public int getTestValue(int v1) { return v1; } public String getTestValue2(String str) { return str; } } package com.service.test; public class Bean2 { int v1; int v2; int v3; String v4Str; public int getV1() { return v1; } public void setV1(int v1) { this.v1 = v1; } public int getV2() { return v2; } public void setV2(int v2) { this.v2 = v2; } public int getV3() { return v3; } public void setV3(int v3) { this.v3 = v3; } public String getV4Str() { return v4Str; } public void setV4Str(String str) { v4Str = str; } } package com.service.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ApplicationContext context = new ClassPathXmlApplicationContext("testBean.xml"); Bean2 bean2 = (Bean2)context.getBean("bean2"); System.out.println(bean2.getV1()); System.out.println(bean2.getV2()); System.out.println(bean2.getV3()); System.out.println(bean2.getV4Str()); } }
2、需要XML配置:
<?xml version="1.0" encoding="UTF-8"?> <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.1.xsd"> <bean id="bean1" class="com.service.test.Bean1"> </bean> <bean id="bean2" class="com.service.test.Bean2"> <property name="v1" value="#{bean1.v1}"/> <property name="v2" value="#{bean1.getV1()}"/> <property name="v3" value="#{bean1.getTestValue(3)}"/> <property name="v4Str" value="#{'Hello '+bean1.getTestValue2('baby')}"/> </bean> </beans>