问题

我还没有找到我能理解的Spring bean的高级定义。我在Grails文档和书籍中经常引用它们,但我认为理解它们是有益的。那么什么是春豆?他们怎么用?他们是否与依赖注入有关?


#1 热门回答(162 赞)

构成应用程序主干并由Spring IoC *容器管理的对象称为bean。 bean是一个由Spring IoC容器实例化,组装和管理的对象。这些bean是使用你提供给容器的配置元数据创建的,例如,以XML定义的形式。

有关bean和范围的更多信息,请访问SpringSource

创建bean定义时,实际创建的是用于创建由该bean定义定义的类的实际实例的配方。 bean定义是一个配方的想法很重要,因为这意味着,就像一个类一样,你可以从一个配方创建许多对象实例。你不仅可以控制要插入到从特定bean定义创建的对象中的各种依赖项和配置值,还可以控制从特定bean定义创建的对象的范围。这种方法非常强大,使你可以灵活地选择通过配置创建的对象的范围,而不必在Java类级别"烘焙"对象的范围。可以将Bean定义为部署在多个范围之一中

  • IoC:控制反转

#2 热门回答(104 赞)

Spring bean只是由Spring容器管理的对象实例,即它们由框架创建和连接并放入"对象包"(容器)中,以后可以从中获取它们。

"布线"部分是依赖注入的全部内容,它意味着你只能说"我将需要这个东西",框架将遵循一些规则来获得适当的实例。

对于那些不习惯Spring的人,我认为Wikipedia Spring's article has a nice description

Spring Framework的核心是控制容器的反转,它提供了使用反射配置和管理Java对象的一致方法。容器负责管理特定对象的对象生命周期:创建这些对象,调用它们的初始化方法,以及通过将它们连接在一起来配置这些对象。容器创建的对象也称为托管对象或bean。可以通过加载XML文件或检测配置类上的特定Java注释来配置容器。这些数据源包含bean定义,这些定义提供了创建bean所需的信息。可以通过依赖查找或依赖注入来获得对象。依赖关系查找是一种模式,其中调用者向容器对象请求具有特定名称或特定类型的对象。依赖注入是一种模式,容器通过构造函数,属性或工厂方法将对象按名称传递给其他对象。


#3 热门回答(22 赞)

嗯,你部分了解它。你必须根据需要定制bean,并在需要时通过Spring容器进行管理,方法是使用一种名为IoC(Inversion of Control)的方法,该方法由Martin Fowler创建,也称为Dependency Injection(DI)。

你以某种方式连接bean,这样你就不必处理实例化或评估对bean的任何依赖性。这通常被称为Hollywood Principle

除了在这个问题中你会被充斥的链接之外,谷歌是探索更多内容的最佳工具。 :)


原文链接