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。