spring bean的定義及相關參數

1配置元數據

Bean是被實例化的、被組裝起來的、被IOC容器管理的類實例(一條Bean配置元數據可以產生多個類實例)。創建這些Bean需要的一些配置參數,叫做配置元數據,配置元數據肯定是我們自己寫的,之前的提到的提供配置元數據的方法有xml和java類,還有一個就是component註解(一些老教程都沒提……搞得我一直以爲大家還都在用xml配置元數據……)。配置元數據要包含的具體的參數如下:

  • class:這個的值必須有,且指向一個具體存在的java類,bean就是這個java類的實例
  • name:bean的唯一標識,且不能以大寫字母開頭,和前端裏的標籤的id/name一樣
  • constructor-arg :它是用來注入依賴關係的,其實就是構造方法的入參
  • properties:它是用來注入依賴關係的,對了類的屬性進行賦值,可以是賦值基本數據類型,也可以是賦值一個類實例(在spring中,就是一個由IOC容器控制的bean了)
  • autowiring mode:它是用來注入依賴關係的,暫時不太瞭解
  • lazy-initialization mode:延遲初始化的bean,告訴 IOC容器在它第一次被請求時,而不是在啓動時去創建一個 bean 實例。debug運行spring demo,發現,不顯式配置就默認爲,第一次使用bean時創建這個bean,即lazy-initialization=“true”
  • initialization 方法:在 bean 的所有必需的屬性被容器設置之後,可以簡單理解爲構造函數之後的,自動執行的方法。
    destruction 方法:當包含該 bean 的容器被銷燬時,使用該方法,應該是做一些資源釋放之類的。

2bean和spring容器的關係

下圖是bean和spring的簡單關係,也能看出bean的生成過程。
bean和spring容器的關係來看一下xml提供的配置元數據實例,配置文件中有不同的 bean 定義,包括延遲初始化,初始化方法和銷燬方法的:

<?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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章