Spring bean定義
形成應用程序的骨乾是由Spring IoC容器所管理的對象稱為bean。bean被實例化,組裝,並通過Spring IoC容器所管理的對象。這些bean由容器提供,例如,在XML的<bean/>定義,已經看到了前幾章的形式配置元數據創建。
bean定義包含所需要的容器要知道以下稱為配置元數據的信息:
-
如何創建一個bean
-
Bean 生命周期的詳細信息
-
Bean 依賴關係
上述所有配置元數據轉換成一組的下列屬性構成每個bean的定義。
屬性 | 描述 |
---|---|
class | 此屬性是強製性的,並指定bean類被用來創建bean。 |
name | 此屬性指定唯一bean標識符。在基於XML的配置元數據時,您可以使用id和/或name屬性來指定bean標識符 |
scope | 該屬性指定一個特定的bean定義創建,它會在bean作用域本章要討論的對象範圍。 |
constructor-arg | 這是用來注入的依賴關係,並在接下來的章節中進行討論。 |
properties | 這是用來注入的依賴關係,並在接下來的章節中進行討論。 |
autowiring mode | 這是用來注入的依賴關係,並在接下來的章節中進行討論。 |
lazy-initialization mode | 延遲初始化的bean告訴IoC容器創建bean實例時,它首先要求,而不是在啟動時。 |
initialization method | 回調隻是在bean的所有必要屬性後調用已設置的容器。它會在bean的生命周期章節中討論。 |
destruction method | 當包含該bean容器被銷毀所使用的回調。它會在bean的生命周期章節中討論。 |
Spring配置元數據
Spring IoC容器完全由在此配置元數據實際寫入的格式解耦。有下列提供的配置元數據的Spring容器三個重要的方法:
-
基於XML的配置文件。
-
基於注解的配置
-
基於Java的配置
我們已經看到了基於XML的配置元數據如何提供給容器,但讓我們看到了不同的bean定義,包括延遲初始化,初始化方法和銷毀方法基於XML配置文件的另一個示例:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- A simple bean definition --> <bean id="..." class="..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- A bean definition with lazy init set on --> <bean id="..." class="..." lazy-init="true"> <!-- collaborators and configuration for this bean go here --> </bean> <!-- A bean definition with initialization method --> <bean id="..." class="..." init-method="..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- A bean definition with destruction method --> <bean id="..." class="..." destroy-method="..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- more bean definitions go here --> </beans>
可以查看Spring Hello World 示例 來了解如何定義,配置和創建Spring Bean。
有關基於注解的配置在一個單獨的章節討論。在一個單獨的章節刻意保留它,因為希望能掌握一些Spring其他的重要概念,在開始用注解依賴注入來編程。