Spring bean 可以引用另一个 bean 吗?它似乎不起作用:
<bean id="player1" class="some.package.Player" />
<bean id="player2" ref="player1" />
如果可以的话,有用吗?到目前为止,我认为每个 bean 都必须代表一个唯一的对象,但我的脑海中浮现出一些想法:如果我有一个名为例如的 Singleton 类怎么办? Sun 有一个“public static Sun getInstance()”方法,我会让两个 bean 成为同一个对象?
<bean id="sun1" class="some.package.Sun" factory-method="getInstance" />
<bean id="sun2" class="some.package.Sun" factory-method="getInstance" />
最佳答案
看下面
<bean id="player1" class="some.package.Player" />
<bean id="player2" ref="player1" />
我认为您想用两个或多个名称引用同一个 bean。如果是这样,您可以将逗号分隔的列表或 ID 作为(别名概念)
<bean id="player1, player2" class="some.package.Player" />
现在您可以使用player1或player2引用该bean。
同样,
<bean id="sun1" class="some.package.Sun" factory-method="getInstance" />
<bean id="sun2" class="some.package.Sun" factory-method="getInstance" />
可以替换为
<bean id="sun1, sun2" class="some.package.Sun" factory-method="getInstance" />
这允许您使用两个不同的 id 引用同一个 bean。
要了解别名何时有用,请引用 https://vladmihalcea.com/why-i-like-spring-bean-aliasing/ ,
Bean aliasing allows us to override already configured beans and to substitute them with a different object definition. This is most useful when the bean definitions are inherited from an external resource, which is out of our control.
关于java - Spring bean 必须代表一个唯一的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39351622/