java - spring:通过读取另一个 bean 的属性来设置一个 bean 的属性?

标签 java spring dependency-injection

是否可以通过读取另一个bean的属性来设置一个bean的属性?例如,假设我有:

class A {
   void setList(List list);
}

class B {
   List getList();
}

我希望 Spring 实例化这两个类,并调用 A 的 setList 方法,传入调用 B 的 getList 方法的结果。 Spring 配置可能类似于:

<bean id="b" class="B"/>
<bean id"a" class="A">
    <property name="list" ref="b" ref-property="list"/>
</bean>

唉,这个虚构的 XML 不起作用。

为什么不直接将 B 注入(inject) A 呢?因为我不想引入额外的依赖。 A 只是依赖列表,而不是 B。

最佳答案

如果您使用的是 spring 3.0,除了@Kevin 的回答之外,还可以使用新的 spring 表达式语言来做到这一点

<bean id="a" class="A">
    <property name="list"
        value="#{b.list}"/>
</bean>

spring 3.0 documentation

关于java - spring:通过读取另一个 bean 的属性来设置一个 bean 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1602640/

相关文章:

java - JAXB eclipse 错误 : There's no JAXB 2. 2 API 在类路径中

java - 如何从 Netbeans 平台中的另一个窗口更新一个窗口中的组件?

spring - server.error.path 属性究竟是什么?

spring - 如何通过 Spring @RequestParam 使用自定义反序列化器

java - 使用和理解 picoContainer

java - 如何将名称/值对添加到 JSONArray

java - Collection 引用

java - Spring Boot 属性解析不正确

java - Spring 中重写构造函数参数

spring - 有没有办法覆盖组件扫描发现的 bean?