我很好奇Spring能够将应用程序绑定在一起的方式(当然只是简单的说法)。在独立的Java应用程序中,您使用查找来引导应用程序,然后Spring实例化并将对象绑定在一起(DI)。
如果你有一个for
循环,你不知道迭代次数(用户输入)你会在循环体内使用依赖查找方法吗?在这种情况下你会实现BeanFactoryAware接口吗?或者您是否使用new
关键字来制作对象?
阅读时我想到了一件事。
答案 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,你不创建它们 - 你只需使用它们。