我们可以在运行时将bean注入服务吗?我正在开发一个Spring MVC应用程序,并且有两个不同的bean使用相同的功能。我需要在运行时根据一些参数注入一个bean。我怎么在春天这样做?
答案 0 :(得分:0)
如果要在已创建的bean之间切换 然后使用方法
在类
中自动装配ApplicationContext@Autowired ApplicationContext ctx;
在方法中,只需从ApplicationContext中获取这些bean并在这些bean之间切换。我会使用一个接口,然后让那两个(或更多)类(你想在运行时切换)实现接口,以便有一个合同。
BeanInterface beanName;
if (x){
beanName = (BeanClass1) ctx.getBean("beanClass1");
}
else{
beanName = (BeanClass2) ctx.getBean("beanClass2");
}
免责声明:没有对此进行测试,如果不能正常工作,可能需要进行一些调整。
如果您希望bean创建基于某些运行时参数,请查看https://stackoverflow.com/a/34350983/6785908