程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 詳解Java的Spring框架中bean的界說和性命周期

詳解Java的Spring框架中bean的界說和性命周期

編輯:關於JAVA

詳解Java的Spring框架中bean的界說和性命周期。本站提示廣大學習愛好者:(詳解Java的Spring框架中bean的界說和性命周期)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解Java的Spring框架中bean的界說和性命周期正文


bean的界說
構成運用法式的主干是由Spring IoC容器所治理的對象稱為bean。bean被實例化,組裝,並經由過程Spring IoC容器所治理的對象。這些bean由容器供給,例如,在XML的<bean/>界說,曾經看到了前幾章的情勢設置裝備擺設元數據創立。

bean界說包括所須要的容器要曉得以下稱為設置裝備擺設元數據的信息:

  1. 若何創立一個bean
  2. Bean 性命周期的具體信息
  3. Bean 依附關系
  4. 上述一切設置裝備擺設元數據轉換成一組的以下屬性組成每一個bean的界說。

    Spring設置裝備擺設元數據
    Spring IoC容器完整由在此設置裝備擺設元數據現實寫入的格局解耦。有以下供給的設置裝備擺設元數據的Spring容器三個主要的辦法:

    1. 基於XML的設置裝備擺設文件
    2. 基於注解的設置裝備擺設
    3. 基於Java的設置裝備擺設
    4. 我們曾經看到了基於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>
      
      

      bean的性命周期
      Spring bean的性命周期是很輕易懂得。當一個bean實例化時,它能夠須要履行一些初始化把它轉換成可用狀況。相似地,當bean不再須要,而且自在器中掏出,一些清算的任務能夠也須要做。

      不外,還有把bean面前的實例化和燒毀時光之間的場景產生的運動,然則本章將只評論辯論個中兩個是須要在bean的初始化和燒毀的時刻,主要bean的性命周期回調辦法。

      要界說裝置和裝配一個bean,我們只是聲清楚明了初始化辦法和/或燒毀,辦法的參數<bean>。在init-method屬性指定一個辦法,是被挪用bean後立刻實例化。異樣,燒毀辦法劃定了被挪用當bean被自在器中掏出之前的辦法。

      初始化回調:
      org.springframework.beans.factory.InitializingBean 接口指定一個單一的辦法:

      void afterPropertiesSet() throws Exception;
      是以,可以簡略地完成上述接口和初始化任務可以在外面afterPropertiesSet() 辦法,以下所示:

      public class ExampleBean implements InitializingBean {
        public void afterPropertiesSet() {
         // do some initialization work
        }
      }
      

      在基於XML的設置裝備擺設元數據的情形下,可使用init-method 屬性來指定具有void無參數簽名的辦法的稱號。例如:

      <bean id="exampleBean" 
           class="examples.ExampleBean" init-method="init"/>
      

      上面是類的界說:

      public class ExampleBean {
        public void init() {
         // do some initialization work
        }
      }
      

      燒毀回調
      org.springframework.beans.factory.DisposableBean接口指定一個單一的辦法:

      void destroy() throws Exception;
      

      是以,你可以簡略地完成上述接口和定稿任務可以做外面的destroy() 辦法,以下所示:

      public class ExampleBean implements DisposableBean {
        public void destroy() {
         // do some destruction work
        }
      }
      

      在基於XML的設置裝備擺設元數據的情形下,您可使用destroy-method屬性來指定具有void無參數簽名的辦法的稱號。例如:

      <bean id="exampleBean" 
           class="examples.ExampleBean" destroy-method="destroy"/>
      

      上面是類的界說:

      public class ExampleBean {
        public void destroy() {
         // do some destruction work
        }
      }
      

      假如您在非web運用情況中應用Spring的IoC容器,例如在桌面富客戶端情況; 注冊封閉鉤子在JVM中。如許做可以確保正常關機,並讓一切的資本都被釋放挪用singleton bean上的相干destroy辦法。

      建議不要應用的InitializingBean或許DisposableBean的回調,由於XML設置裝備擺設供給極年夜的靈巧性在定名你的辦法方面。

      例如:
      應用Eclipse IDE,然後依照上面的步調來創立一個Spring運用法式:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved