如何在Spring中动态设置bean引用?

Sha*_*shi 11 java spring

<bean id="Mybean" class="Bean">   
  <property name="config" ref="dev"/>   
</bean>

<bean id="dev" class="Dev">
  <property name="x" ref="Dev1">
  <property name="y" ref="Dev2">
  <property name="z" ref="Dev3">
</bean>

<bean id="stag" class="Dev">
  <property name="x" ref="Stag1">
  <property name="y" ref="Stag2">
  <property name="z" ref="Stag3">
</bean>
Run Code Online (Sandbox Code Playgroud)

在上面的场景中,configbean中的属性MyBean从环境变为环境.在开发时,配置的引用更改为dev.在分期中,参考变为stag.在弹出文件中检查时出现问题.在签入之前,我们必须每次分析config的引用.如果config的引用带有devcheck in 的值,我们可能需要解释很多问题.

是否有任何解决方案可以使其自动化?
注意:Spring版本是2.0.1

nde*_*rge 10

使用Spring的PropertyPlaceholderConfigurer,删除一个未使用的bean:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
         <value>env.properties</value>
     </property>
</bean>

<bean id="Mybean" class="Bean">   
  <property name="config" ref="config"/>   
</bean>

<bean id="config" class="Config">
  <property name="x" ref="${x}">
  <property name="y" ref="${y}">
  <property name="z" ref="${z}">
</bean>
Run Code Online (Sandbox Code Playgroud)

和env.properties文件包含以下属性:

x=Dev1
y=Dev2
z=Dev3
Run Code Online (Sandbox Code Playgroud)

要么

x=Stag1
y=Stag2
z=Stag3
Run Code Online (Sandbox Code Playgroud)