有没有办法可以在spring上创建运行时bean。我需要这样做,因为bean的值将由外部实体通过RESTful服务注入。运行时bean是否仍然可以自动装配?
答案 0 :(得分:0)
完全可能
在你的控制器中(或你的工厂会更优雅)你需要注入你的应用程序上下文
@Autowired
private ApplicationContext applicationContext;
您可以像这样创建bean:
YourClassBean yourObject = this.applicationContext.getBean(YourClassBean.class, params);
在Spring配置中执行以下操作:
@Bean
@Scope(value = "prototype")
YourClassBean yourClassBean(String params) {
return new YourClassBean(params);
}
你已经完成了。
在该示例中,Scope是Prototype,这意味着每次调用yourClassBean方法时都会得到一个新对象。
同样在该示例中,params是一个String(它就像你的bean的初始化参数,但这完全是可选的,当然你可能需要或想要更多的参数,它完全可以找到)