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

原文地址:https://www.cnblogs.com/skiwdhwhssh/p/10342040.html

时间: 2024-11-08 20:25:25

Spring配置中的bean直接引用其它bean的属性值的相关文章

解决spring配置中的bean类型的问题:BeanNotOfRequiredTypeException

解决spring配置中的bean类型的问题:BeanNotOfRequiredTypeException这个问题出现的原因:一般在使用annotation的方式注入spring的bean 出现的,具体是由于spring采用代理的机制导致的,看使用的代码: Java代码 1. 使用类注入: @Resource(name = "aisleService") private AisleService aisleService; 2. 使用接口注入: @Resource(name = &quo

Spring 配置中 bean 的 class 使用工厂 Bean 的含义解析

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. <bean id="studentMapper" class="org.mybatis.spring.Mapp

Spring配置中 bean上的属性parent的作用

省去多余的父类配置,比如 事务管理: <bean id="basicTxProxy2" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager2

【小家Spring】老项目迁移问题:@ImportResource导入的xml配置里的Bean能够使用@PropertySource导入的属性值吗?

#### 每篇一句 > 大师都是偏执的,偏执才能产生力量,妥协是没有力量的.你对全世界妥协了你就是空气.所以若没有偏见,哪来的大师呢 #### 相关阅读 [[小家Spring]详解PropertyPlaceholderConfigurer.PropertyOverrideConfigurer等对属性配置文件Properties的加载和使用](https://blog.csdn.net/f641385712/article/details/91444601) [[小家Spring]Spring中@

spring配置中,properties文件以及xml文件配置问题

spring方便我们的项目快速搭建,功能强大,自然也会是体系复杂! 这里说下配置文件properties管理的问题. 一些不涉及到代码逻辑,仅仅只是配置数据,可以放在xxxx.properties文件里面,项目功能复杂的时候,往往properties文件很多,这时,就比较容易让人困惑,有些properties的文件内容总是加载不起来,应用启动时,就不断爆出错误,说某某参数加载失败,这个是什么原因呢? 其实,这个是spring配置的时候,org.springframework.beans.fact

spring 配置中 merge的使用

在spring 的配置中共用属性模版时,使用parent='parentBean',如果parentBean里面有个List集合属性,子类还想在这个List里面添加元素,这是怎么办呢? public class Person {         private List<Address> addresses;         ..     } <bean name='basePerson' class='Person' abstract='true'>  <property 

spring 配置中相关属性的含义:

1:parent元素属性 一个bean定义可能会包含大量的配置信息,包括容器相关的信息(比如初始化方法,静态工厂方法等等)以及构造函数参数和属性的值.一个child bean定义是一个能够从parent bean定义继承配置数据的bean定义.然后它可以覆盖一些值,或者添加一些其他需要的.使用父和子的bean定义可以节省很多的输入工作.实际上,这就是一种模版形式.当编程式地使用一个BeanFactory,child bean定义用ChildBeanDefinitiaon类表示.大多数的用户从来不

&lt;转&gt;Spring配置中transactionAttributes的使用方法和作用

最近碰到这个问题,在使用spring提供的JpaTemplate进行查询时,如果数据量超过100 条,查询效率就会明显降低.由于开始时使用JPA内部的双向关联,造成各实体内部关联过多,从而影响所有的操作,因此怀疑是因为JPA的关联关系所致.但 是去掉关联关系后的效果不显著. 查找spring的相关配置,发现原来关于“transactionAttributes”有问题.原来的配置如下: <bean id="baseTransactionProxy" class="org.

Spring BPP中优雅的创建动态代理Bean

一.前言 本文章所讲并没有基于Aspectj,而是直接通过Cglib以及ProxyFactoryBean去创建代理Bean.通过下面的例子,可以看出Cglib方式创建的代理Bean和ProxyFactoryBean创建的代理Bean的区别. 二.基本测试代码 测试实体类,在BPP中创建BppTestDepBean类型的代理Bean. @Component public static class BppTestBean { @Autowired private BppTestDepBean dep