Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring,通过反序列化创建一个bean_Java_Spring - Fatal编程技术网

Java Spring,通过反序列化创建一个bean

Java Spring,通过反序列化创建一个bean,java,spring,Java,Spring,我没有太多地使用Spring,所以我可能遗漏了一些明显的东西。无论如何,这是一个问题: 假设您有一个Spring管理的bean,它是一个网络客户端。在你调用一个方法之后,你得到了一些对象,比如说它是一个列表 现在我想把这个列表处理成对我的应用程序的其余部分更有用的东西,比如说它是MyBusinessBean类型的 我如何避免做错事 new MyBusinessBean(List<String> info) 然而,我一直在到处阅读,这是一个没有正确完成某些事情的信号,因为我让我的代

我没有太多地使用Spring,所以我可能遗漏了一些明显的东西。无论如何,这是一个问题:

假设您有一个Spring管理的bean,它是一个网络客户端。在你调用一个方法之后,你得到了一些对象,比如说它是一个列表

现在我想把这个列表处理成对我的应用程序的其余部分更有用的东西,比如说它是MyBusinessBean类型的

我如何避免做错事

new MyBusinessBean(List<String> info) 

然而,我一直在到处阅读,这是一个没有正确完成某些事情的信号,因为我让我的代码上下文感知。Spring的正确方法是什么?

第二种方法是在Spring中执行的操作。称为“新”意味着你打破了模型

但是,不要假设每个对“new”的调用都会在Spring之前被消除。每个对象都不需要受Spring的控制。有时你只需要调用“new”,通常在单个方法的范围内。创建对象,使用它,GC它-不需要SpringBean工厂


如果您想在序列化后让应用程序中的对象访问该列表,只需传递引用即可。在您描述的情况下,您不需要SpringBean工厂,因为您已经从服务器获得了序列化的对象。

创建myBean后,我不再需要该列表。我只是感到困惑,因为如果我想对获取列表并将myBean添加到上下文中的类进行单元测试,我现在需要将测试上下文注入到单元测试中,Spring文档说我的对象应该在没有Spring或任何其他容器的情况下是可测试的。我认为这在web应用程序中一定很常见,当出现请求时,您需要从请求中创建对象。我知道在方法范围内创建对象是可以的,但这是一个我需要传递给许多类的对象。“…在创建myBean后不再需要该列表…”-抱歉,我不明白你的意思。您的评论涉及测试和web应用程序。是哪一个?在你的问题中,你最关心的是哪一个?我想说,传递原始列表可能是一个错误。它的封装在哪里?如果一个对象拥有它,给它维护它的方法并传递它。
MyBusinessBean myBean = (MyBusinessBean) applicationContext.getBean("myBusinessBean", info);