在这种情况下使用Springs IoC?

时间:2012-03-18 20:35:33

标签: java spring java-ee

我很好奇Spring能够将应用程序绑定在一起的方式(当然只是简单的说法)。在独立的Java应用程序中,您使用查找来引导应用程序,然后Spring实例化并将对象绑定在一起(DI)。

如果你有一个for循环,你不知道迭代次数(用户输入)你会在循环体内使用依赖查找方法吗?在这种情况下你会实现BeanFactoryAware接口吗?或者您是否使用new关键字来制作对象?

阅读时我想到了一件事。

2 个答案:

答案 0 :(得分:2)

“让我们假装每次都需要一个新实例”

如果你有一个组件A有一个for循环,你需要在每次迭代时需要一个新的“bean”B实例,为什么不在它中注入一个B factory并在其中调用一个for循环。

这一切都归结为有意义

  • 如果您需要在每次迭代时创建一些简单的东西(例如新的String),那么使用new关键字没有任何问题。

  • 如果它更复杂,最好封装“创建细节”,依赖于任何特定框架(例如BeanFactoryAware)对你没有任何好处。只需使用构建器/工厂,它可以是另一个可以注入的bean,也可以静态调用。


更少魔法更清晰

答案 1 :(得分:0)

如果我理解你的问题,答案可能是:默认情况下,春豆是单身。

因此,在大多数情况下,您永远不需要在for循环中查找一个 - 您将使用在循环之前查找的实例。

此外,您可能会尝试将Spring bean视为您创建的用于填充数据的JavaBeans。您可以阅读此链接以查看差异:http://www.shaunabram.com/beans-vs-pojos/

Spring bean更像是JavaEE Enterprise Beans,你不创建它们 - 你只需使用它们。