现在的位置: 首页 > 综合 > 正文

Spring配置中的bean直接引用其它bean的属性值

2012年10月07日 ⁄ 综合 ⁄ 共 1807字 ⁄ 字号 评论关闭

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>

抱歉!评论已关闭.