【发布时间】:2016-11-09 17:02:31
【问题描述】:
我们可以在运行时将 bean 注入服务吗?我正在开发一个 Spring MVC 应用程序,并且有两个使用相同功能的不同 bean。我需要在运行时根据一些参数注入一个 bean。我在春季如何做到这一点?
【问题讨论】:
-
代码在哪里?添加代码
标签: spring spring-mvc
我们可以在运行时将 bean 注入服务吗?我正在开发一个 Spring MVC 应用程序,并且有两个使用相同功能的不同 bean。我需要在运行时根据一些参数注入一个 bean。我在春季如何做到这一点?
【问题讨论】:
标签: spring spring-mvc
如果你想在已经创建的 bean 之间切换 然后使用这个方法
类中的Autowire ApplicationContext
@Autowired ApplicationContext ctx;
在方法中,只需从 ApplicationContext 获取这些 bean 并在它们之间切换。我会使用一个接口,然后让这 2 个(或更多)类(您想在运行时切换)实现该接口,这样就会有一个契约。
BeanInterface beanName;
if (x){
beanName = (BeanClass1) ctx.getBean("beanClass1");
}
else{
beanName = (BeanClass2) ctx.getBean("beanClass2");
}
免责声明:没有对此进行测试,如果这不起作用,您可能需要进行一些调整。
如果您甚至希望 bean 创建基于某些运行时参数,请查看此处https://stackoverflow.com/a/34350983/6785908
【讨论】: