我没有太多使用Spring,所以我可能会遗漏一些明显的东西。无论如何,这是一个问题:
假设你有一个Spring托管bean,它是一个网络客户端。在你上面调用一个方法后,你会得到一些对象,比如它是一个List
现在我想将该List处理成对我的应用程序的其余部分更有用的东西,比如说它是MyBusinessBean类型。
如何避免做
new MyBusinessBean(List<String> info)
??如果我这样做,它就会变成一个不属于上下文的对象。
我正在做类似的事情:
MyBusinessBean myBean = (MyBusinessBean) applicationContext.getBean("myBusinessBean", info);
然而,我一直在阅读这是一个没有正确完成的信号,因为我正在使我的代码情境感知。这样做的Spring方法是什么?
答案 0 :(得分:2)
第二种方式是你在春天做的事情。调用“新”意味着你打破了模型。
但是不要以为Spring会消除对“new”的每次调用。每个对象都不需要受Spring控制。有时你只需要调用“new”,通常在单个方法的范围内。创建对象,使用它,GC它 - 不需要Spring bean工厂。
如果要在应用程序中为对象提供对象的访问权限,请简单地传递引用。在您描述的情况下,您不需要Spring bean工厂,因为您已经从服务器序列化了该对象。