下面新增此次測試demo的工程樣例截圖
下面為完整的測試檔案**
1、beanlifecycle
package springioc;
import org.springframework.beans.bean***ception;
import org.springframework.beans.factory.beanfactory;
import org.springframework.beans.factory.beanfactoryaware;
import org.springframework.beans.factory.beannameaware;
import org.springframework.beans.factory.disposablebean;
import org.springframework.beans.factory.initializingbean;
import org.springframework.beans.factory.annotation.autowired;
/* * 通過觀察 person類的例項化過程
* beanlifecycle的例項化過程
* 以及這兩個類之間依賴注入的過程
* 深入了解bean生命週期
*/public class beanlifecycle implements beanfactoryaware,beannameaware,initializingbean,disposablebean
public string getstarttime()
public void setstarttime(string starttime)
public string getendtime()
public void setendtime(string endtime)
public person getperson()
public void setperson(person person)
/** 去掉setperson,驗證是否能成功注入person依賴
*/public void validsetperson()
@override
public void destroy() throws exception
@override
public void afterpropertiesset() throws exception
@override
public void setbeanname(string arg0)
@override
public void setbeanfactory(beanfactory arg0) throws bean***ception
/** 配置檔案中,標籤, 通過 init-method屬性指定的方法
*/public void myinitmethod()
/** 配置檔案中,標籤, 通過 destory-method屬性指定的方法
*/public void mydestory()
}
2、beanlifecycletest
package springioc;
public class beanlifecycletest
}
3、mybeanfacotrypostprocessor
package springioc;
import org.springframework.beans.bean***ception;
import org.springframework.beans.factory.config.beandefinition;
import org.springframework.beans.factory.config.beanfactorypostprocessor;
import org.springframework.beans.factory.config.configurablelistablebeanfactory;
/* * 自定義bean工廠後處理器
* */
public class mybeanfacotrypostprocessor implements beanfactorypostprocessor
}
4、mybeanpostprocessor
package springioc;
import org.springframework.beans.bean***ception;
import org.springframework.beans.factory.config.beanpostprocessor;
/** * 通過實現beanpostprocessor介面方法
* * 最終,在spring容器中註冊該自定義bean後處理器
* 從容器中獲取bean時,觀察該實現方法的呼叫時機,深入理解bean生命週期
* */
public class mybeanpostprocessor implements beanpostprocessor
//對容器中的beanlifecycle例項化前,進行處理
if("beanlifecycle".equals(beanname))
} return bean;
} /*
* 實現介面方法,該實現方法,在例項化bean後進行呼叫
*/@override
public object postprocessafterinitialization(object bean, string beanname) throws bean***ception
if("person".equals(beanname))
}return bean;
}}
5、myinstantiationawarepostprocessor
package springioc;
import org.springframework.beans.bean***ception;
import org.springframework.beans.factory.config.instantiationawarebeanpostprocessoradapter;
/* * 通過擴充套件介面卡 instantiationawarebeanpostprocessoradapter
* 重寫其中的某些個方法
* 觀察輸出語句的呼叫時機,理解bean的生命週期
*/public class myinstantiationawarepostprocessor extends instantiationawarebeanpostprocessoradapter
@override
public object postprocessbeforeinitialization(object bean, string beanname) throws bean***ception
return bean;
}}
6、person
下面兩個截圖,是測試demo的輸出結果分析圖package springioc;
import org.springframework.stereotype.service;
/* * 通過service註解,在spring容器中進行註冊,同時,xml檔案中也有對person的配置
* 如果容器啟動沒有報錯,說明spring對此採取了覆蓋功能
*/@service("person")
public class person
public string getname()
public void setname(string name)
public int getage()
public void setage(int age)
@override
public string tostring()
}
<?xml version="1.0" encoding="utf-8"?>
詳細解讀mysql 詳細解讀MySQL中的許可權
一 前言 很多文章中會說,資料庫的許可權按最小許可權為原則,這句話本身沒有錯,但是卻是一句空話。因為最小許可權,這個東西太抽象,很多時候你並弄不清楚具體他需要哪些許可權。現在很多mysql用著root賬戶在操作,並不是大家不知道用root許可權太大不安全,而是很多人並不知道該給予什麼樣的許可權既安全...
Spring容器事件小例項
這個例項,真的是非常小的例項 主要實現了時間發布和事件監聽的過程。比如在上學的時候,我們經常要到學校食堂吃飯,但是剛進來的新生不一定了解學校食堂開飯時間,就訂閱了學校食堂的廣播通知 那麼實現 來了。先來定義乙個事件restaurantevent public class restauranteven...
web容器中例項化spring相關配置說明
web容器中例項化spring相關配置說明 要想在web容器例項化時載入spring容器,web.xml檔案中配置如下 contextconfiglocation classpath bean.xml org.springframework.web.context.contextloaderlist...