国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring中Bean創(chuàng)建完成后執(zhí)行指定代碼的幾種實(shí)現(xiàn)方式

zone / 2029人閱讀

摘要:在實(shí)際開發(fā)中經(jīng)常會(huì)遇到在容器加載完某個(gè)之后,需要執(zhí)行一些業(yè)務(wù)代碼的場(chǎng)景。比如初始化配置緩存等。

在實(shí)際開發(fā)中經(jīng)常會(huì)遇到在spring容器加載完某個(gè)bean之后,需要執(zhí)行一些業(yè)務(wù)代碼的場(chǎng)景。比如初始化配置、緩存等。有以下幾種方式可以實(shí)現(xiàn)此需求(歡迎補(bǔ)充)

實(shí)現(xiàn)ApplicationListener接口

實(shí)現(xiàn)ApplicationListener接口并實(shí)現(xiàn)方法onApplicationEvent()方法,Bean在創(chuàng)建完成后會(huì)執(zhí)行onApplicationEvent方法

@Component
public class DoByApplicationListener implements ApplicationListener {
    public DoByApplicationListener() {
        System.out.println("DoByApplicationListener constructor");
    }

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        if (event.getApplicationContext().getParent() == null) {
            System.out.println("DoByApplicationListener do something");
        }
    }
}
實(shí)現(xiàn)InitializingBean接口

實(shí)現(xiàn)InitializingBean接口并實(shí)現(xiàn)方法afterPropertiesSet(),Bean在創(chuàng)建完成后會(huì)執(zhí)行afterPropertiesSet()方法

@Component
public class DoByInitializingBean implements InitializingBean {
    public DoByInitializingBean() {
        System.out.println("DoByInitializingBean constructor");
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("InitByInitializingBean do something");
    }
}
使用@PostConstruct注解

在Bean的某個(gè)方法上使用@PostConstruct注解,Bean在創(chuàng)建完成后會(huì)執(zhí)行該方法

@Component
public class DoByPostConstructAnnotation {
    public DoByPostConstructAnnotation() {
        System.out.println("DoByPostConstructAnnotation constructor");
    }

    @PostConstruct
    public void init(){
        System.out.println("InitByPostConstructAnnotation do something");
    }
}
使用init-method

使用init-metod可以指定Bean在創(chuàng)建完成后,初始化使用的方法,比如有個(gè)Bike類

public class Bike {
    public Bike() {
        System.out.println("Bike constructor");
    }
    public void initBike() {
        System.out.println("Bike do something");
    }
}

使用@Configuration注解來啟動(dòng)容器,并設(shè)置Bike的初始化方法為initBike

@Configuration
public class DoByInitMethod {
    @Bean(initMethod ="initBike")
    public Bike bike() {
        return new Bike();
    }
}

以上方式和代碼全部都測(cè)試運(yùn)行過,絕對(duì)可用!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/75069.html

相關(guān)文章

  • Spring-bean幾種循環(huán)依賴方式

    摘要:如下圖注意,這里不是函數(shù)的循環(huán)調(diào)用,是對(duì)象的相互依賴關(guān)系。因此如果在創(chuàng)建過程中發(fā)現(xiàn)自己已經(jīng)在當(dāng)前創(chuàng)建池里時(shí)將拋出異常表示循環(huán)依賴而對(duì)于創(chuàng)建完畢的將從當(dāng)前創(chuàng)建池中清除掉。 showImg(https://segmentfault.com/img/bVbs5kw?w=339&h=193); 什么是循環(huán)依賴? 循環(huán)依賴其實(shí)就是循環(huán)引用,也就是兩個(gè)或則兩個(gè)以上的bean互相持有對(duì)方,最終形成閉...

    notebin 評(píng)論0 收藏0
  • 寫了兩年代碼再來看看SpringBean

    摘要:一什么是中的簡單來講就是一個(gè)個(gè)被容器管理的對(duì)象,我們寫了一個(gè)類之后,這個(gè)類只是一個(gè)單純的類,可以通過的方式去創(chuàng)建它。以類為例在不指定的情況下,所有的實(shí)例都是單實(shí)例的,并且是餓漢式加載容器啟動(dòng)時(shí)就創(chuàng)建好了。 ...

    PrototypeZ 評(píng)論0 收藏0
  • 【備戰(zhàn)春招/秋招系列】美團(tuán)面經(jīng)總結(jié)基礎(chǔ)篇 (附詳解答案)

    摘要:不同于個(gè)人面經(jīng),這份面經(jīng)具有普適性。我在前面的文章中也提到了應(yīng)該怎么做自我介紹與項(xiàng)目介紹,詳情可以查看這篇文章備戰(zhàn)春招秋招系列初出茅廬的程序員該如何準(zhǔn)備面試。是建立連接時(shí)使用的握手信號(hào)。它表示確認(rèn)發(fā)來的數(shù)據(jù)已經(jīng)接受無誤。 showImg(https://segmentfault.com/img/remote/1460000016972448?w=921&h=532); 該文已加入開源文...

    Leck1e 評(píng)論0 收藏0
  • Spring Cloud Alibaba基礎(chǔ)教程:支持幾種服務(wù)消費(fèi)方式

    摘要:那么為什么可以帶給我們這樣的完美編碼體驗(yàn)?zāi)貙?shí)際上,這完全歸功于的封裝,由于在服務(wù)注冊(cè)與發(fā)現(xiàn)客戶端負(fù)載均衡等方面都做了很好的抽象,而上層應(yīng)用方面依賴的都是這些抽象接口,而非針對(duì)某個(gè)具體中間件的實(shí)現(xiàn)。 通過《Spring Cloud Alibaba基礎(chǔ)教程:使用Nacos實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)》一文的學(xué)習(xí),我們已經(jīng)學(xué)會(huì)如何使用Nacos來實(shí)現(xiàn)服務(wù)的注冊(cè)與發(fā)現(xiàn),同時(shí)也介紹如何通過LoadBala...

    curlyCheng 評(píng)論0 收藏0
  • 超實(shí)用百道Java面試題

    摘要:是的簡稱,運(yùn)行環(huán)境,為的運(yùn)行提供了所需的環(huán)境。分割字符串,返回分割后的字符串?dāng)?shù)組。當(dāng)計(jì)算的值相同時(shí),我們稱之為沖突,的做法是用鏈表和紅黑樹存儲(chǔ)相同的值的。迭代器取代了集合框架中的,迭代器允許調(diào)用者在迭代過程中移除元素。 Java基礎(chǔ)1.JDK和JRE有什么區(qū)別? JDK 是java development kit的簡稱,java開發(fā)工具包,提供java的開發(fā)環(huán)境和運(yùn)行環(huán)境。JRE 是j...

    MkkHou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<