Spring init-method與destroy-method屬性的用法解析
Spring init-method與destroy-method屬性使用
知識(shí)點(diǎn)介紹:
有時(shí)候在bean初始化之后要執(zhí)行的初始化方法,以及在bean銷毀時(shí)執(zhí)行的方法。這時(shí)就需要配置init-method和destroy-method屬性,顧名思義,配置初始與銷毀的方法。
操作步驟:
1、創(chuàng)建Speaker對(duì)象
public class Speaker {
private String name;
private String topic;
private Speaker(String name,String topic){
this.name = name;
this.topic = topic;
}
/**
* Speaker實(shí)例化時(shí)執(zhí)行的方法
*/
private void init() {
System.out.println("執(zhí)行Speaker 的 初始化方法 init");
}
/**
* Speaker銷毀時(shí)執(zhí)行的方法
*/
private void destroy() {
System.out.println("執(zhí)行Speaker 的銷毀方法 destroy");
}
public void teach() {
System.out.println(toString());
}
@Override
public String toString() {
return "Speaker [name=" + name + ", topic=" + topic + "]";
}
}
2、創(chuàng)建Spring配置文件beanLearn05.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.xsd"> <!-- Learn 05 init-method和destroy-method屬性的使用 --> <bean id="speaker05" class="com.mahaochen.spring.learn05.Speaker" init-method="init" destroy-method="destroy"> <constructor-arg index="0" value="elle" /> <constructor-arg index="1" value="Study Hard!" /> </bean> </beans>
3、將Spring配置文件beanLearn05.xml引入到主配置文件beans.xml中。
<!-- Learn 04 使用實(shí)例工廠方式實(shí)例化Bean --> <import resource="com/mahaochen/spring/learn05/beanLearn05.xml"/>
4、編寫測(cè)試類TestSpring05.java。
public class TestSpring05 {
public static void main(String[] args) {
ApplicationContext appContext = new ClassPathXmlApplicationContext("beans.xml");
Speaker speaker05 = (Speaker) appContext.getBean("speaker05");
speaker05.teach();
((ClassPathXmlApplicationContext) appContext).close();
}
}
init-method="init"和 destroy-method="close" 作用
一般在我們配置數(shù)據(jù)源的時(shí)候,會(huì)這樣寫
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
init-method="init" destroy-method="close" 作用:
init-method="init"是指bean被初始化時(shí)執(zhí)行的方法,當(dāng)bean實(shí)例化后,執(zhí)行init-method用于初始化數(shù)據(jù)庫(kù)連接池。
destroy-method="close" 是指bean被銷毀時(shí)執(zhí)行的方法 Spring容器關(guān)閉時(shí)調(diào)用該方法即調(diào)用close()將連接關(guān)閉。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中的阻塞隊(duì)列BlockingQueue使用詳解
這篇文章主要介紹了Java中的阻塞隊(duì)列BlockingQueue使用詳解,阻塞隊(duì)列是一種線程安全的數(shù)據(jù)結(jié)構(gòu),用于在多線程環(huán)境下進(jìn)行數(shù)據(jù)交換,它提供了一種阻塞的機(jī)制,當(dāng)隊(duì)列為空時(shí),消費(fèi)者線程將被阻塞,直到隊(duì)列中有數(shù)據(jù)可供消費(fèi),需要的朋友可以參考下2023-10-10
JDK8 new ReentrantLock((true)加鎖流程
這篇文章主要介紹了java面試中常遇到的問(wèn)題JDK8 new ReentrantLock((true)加鎖流程示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
面試必時(shí)必問(wèn)的JVM 類加載機(jī)制詳解
這篇文章主要介紹了一文讀懂Jvm類加載機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-08-08
SpringBoot預(yù)加載與懶加載實(shí)現(xiàn)方法超詳細(xì)講解
Spring一直被詬病啟動(dòng)時(shí)間慢,可Spring/SpringBoot是輕量級(jí)的框架。因?yàn)楫?dāng)Spring項(xiàng)目越來(lái)越大的時(shí)候,在啟動(dòng)時(shí)加載和初始化Bean就會(huì)變得越來(lái)越慢,很多時(shí)候我們?cè)趩?dòng)時(shí)并不需要加載全部的Bean,在調(diào)用時(shí)再加載就行,那這就需要預(yù)加載與懶加載的功能了2022-11-11
Java實(shí)現(xiàn)Excel批量導(dǎo)入數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)Excel批量導(dǎo)入數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
Mybatis如何自動(dòng)生成數(shù)據(jù)庫(kù)表結(jié)構(gòu)總結(jié)
這篇文章主要給大家介紹了關(guān)于Mybatis如何自動(dòng)生成數(shù)據(jù)庫(kù)表結(jié)構(gòu)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java利用Easyexcel導(dǎo)出excel表格的示例代碼
這篇文章主要為大家詳細(xì)介紹了Java利用Easyexcel導(dǎo)出excel表格的示例代碼,文中的代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2022-07-07

