1. 程式人生 > 程式設計 >SPRING FRAMEWORK BEAN作用域和生命週期原理解析

SPRING FRAMEWORK BEAN作用域和生命週期原理解析

這篇文章主要介紹了SPRING FRAMEWORK BEAN作用域和生命週期原理解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Spring beand的作用域

設定為singleton時,相當於一個類只能有一個例項,當再次申請時,返回的是同一個例項

可以看到兩個bean例項的hashcode值是一樣的,說明在此申請到的是同一個例項
將bean的作用域設定為prototype時,再次執行,可以看到,申請到的是兩個不同bean例項

目前只學習了prototype作用域和singleton作用域,剩下的等待之後學習

Spring bean的生命週期

1、定義 配置xml檔案的過程

2、初始化 ioc容器對bean、進行例項化

3、使用

4、銷燬 ioc容器停止時銷燬所有由bean容器建立的bean例項

初始化和銷燬都有三種方式

1,實現介面,InitializingBean,DisposableBean

2,在每個bean中定義init-method和destroy-method

3,在xml配置檔案中定義預設的default-init和default-destroy方法

/*
 * public void defautinit() { System.out.println("Bean defaut Init." +
 * this.hashCode()); }
 * 
 * public void defautdestroy() { System.out.println("Bean defaut destroy." +
 * this.hashCode()); }
 */


/*
 * @Override public void destroy() throws Exception {
 * System.out.println("Bean destory."+this.hashCode()); }
 * 
 * @Override public void afterPropertiesSet() throws Exception {
 * System.out.println("Bean init."+this.hashCode()); }
 */

/*
 * public void start() { System.out.println("Bean start."+this.hashCode()); }
 * 
 * public void stop() { System.out.println("Bean stop."+this.hashCode()); }
 */

介面定義的初始化和銷燬方法優先順序大於bean中定義的方法,

xml預設的方法優先順序最低,甚至可以不在bean中實現,也不會報錯,如果實現另外兩種,會被覆蓋

如果在bean中設定了init和destroy方法則一定需要實現,否則會啟動失敗

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。