使用System属性更改spring bean别名

我试图弄清楚是否可以通过系统属性更改弹簧别名配置。

这是配置:

         

我希望能够使用JVM属性,例如使用-Duse=beanThree为别名选择另一个bean。

不幸的是,使用直接解决方案会抛出NoSuchBeanDefinitionExceptionexception:(

有什么建议么?

您是否尝试使用spring 3.1配置文件?

               

并通过系统属性选择-Dspring.profiles.active=A 我没有在配置文件中尝试别名,但您可以在每个配置文件中使用替代beanToUse定义:

            

这是使用SpEL执行此操作的另一种方法。 我有两个带有bean ids testDataStrategy和realDataStrategy的DataStrategy类型的实现

我可以通过在Java项目的Property文件中设置属性’data.strategy’来在bean之间进行选择。