Spring:为每次调用get方法创建bean的新实例
我有下一种情况: Connection manager
应该每次都有ConnectionServer
一个对象和DataBean
新对象所以,我已经创建了这些bean并配置了它spring xml。
<!---->
并为DataBean
添加了范围prototype
在此之后,我创建了名为Test的简单util / component类
@Component public class Test { @Autowired private DataBean bean; @Autowired private ServerCon server; public DataBean getBean() { return bean.clone(); } public ServerCon getServer() { return server; } }
但是,每次调用getBean()方法我都会克隆这个bean,这对我来说是个问题。 我可以在没有克隆方法的情况下从spring配置中执行此操作吗? 谢谢。
您正在寻找Spring中的查找方法function。 想法是你提供这样的抽象方法:
@Component public abstract class Test { public abstract DataBean getBean(); }
并告诉Spring它应该在运行时实现它:
现在每次调用Test.getBean
时,实际上都会调用Spring生成的方法。 此方法将向ApplicationContext
请求DataBean
实例。 如果这个bean是prototype
-scoped,那么每次调用它时都会得到新的实例。
我在这里写了这个function。