代码之家  ›  专栏  ›  技术社区  ›  Iker Jimenez

Spring,从反序列化创建bean

  •  0
  • Iker Jimenez  · 技术社区  · 14 年前

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

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

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

    我该如何避免

    new MyBusinessBean(List<String> info) 
    

    ??如果我这样做,它将成为一个不属于上下文的对象。

    我在做这样的事情:

    MyBusinessBean myBean = (MyBusinessBean) applicationContext.getBean("myBusinessBean", info);
    

    然而,我一直在阅读,这是一个信号,有些事情做得不好,因为我使我的代码上下文意识到。做这件事的正确方法是什么?

    1 回复  |  直到 14 年前
        1
  •  2
  •   duffymo    14 年前

    第二种方法是你在春天做什么。称之为“新”意味着你正在打破这个模式。

    但不要以为所有“新”的叫声都会在春天消失。每个物体都不必受Spring的控制。有时你只需要调用“new”,通常在一个方法的范围内。创建对象,使用它,GC它-不需要Spring bean工厂。

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