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

Posted 有没有成功

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring配置中的bean直接引用其它bean的属性值相关的知识,希望对你有一定的参考价值。

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>


 

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow





以上是关于Spring配置中的bean直接引用其它bean的属性值的主要内容,如果未能解决你的问题,请参考以下文章

Maven模块化开发,spring无法注入其它模块中的接口

如何在手动获取spring中的bean(Spring ApplicationContextAware获取上下文)

Spring Bean引用例子

Spring Bean引用例子

spring装配集合

Spring框架bean的配置:SpEL:引用 Bean属性和方法。。。