我有以下设置:
<bean id="b1" class="SomeClass">
<property name="foo" ref="foo1"/>
</bean>
<bean id="b2" class="SomeClass">
<property name="foo" ref="foo2"/>
</bean>
<bean id="foo1" class="FooClass">
<constructor-arg index="0"><ref bean="dataSource1"/></constructor-arg>
...other constructor args
</bean>
<bean id="foo2" class="FooClass">
<constructor-arg index="0"><ref bean="dataSource2"/></constructor-arg>
...other constructor args
</bean>
有办法避免重复 FooClass 吗?我想要在 bean b1 和 b2 中执行的操作是添加对 FooClass 的引用,但指定数据源,所有其他构造函数参数都相同。
谢谢
吉姆
最佳答案
如果您希望在每次调用相应的 getter 时动态初始化/填充类的某些成员,您可以尝试查找方法注入(inject)。阅读第 3.3.4.1 页 here .
因此,即使包含动态成员的类是在scope=singletone(spring bean容器的默认值)中创建的,每次访问分配了查找方法的字段时,您都会根据业务逻辑在查找方法内实现。
另外,我发现了一个很好的example在Spring文档中-我认为它非常清楚。看一下《3.4.6.1 Lookup方法注入(inject)》
关于java - Spring配置将属性传递给引用的bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21932411/