最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot項目啟動執(zhí)行任務(wù)的多種方法小結(jié)

 更新時間:2023年07月05日 11:28:11   作者:傻魚愛編程  
這篇文章主要介紹了SpringBoot項目啟動執(zhí)行任務(wù)的多種方法小結(jié),本文給大家分享的這幾種方法經(jīng)常會被用到,當(dāng)我們的項目啟動后需要調(diào)用對應(yīng)的方法,用來項目的初始化等,本文通過示例代碼講解的非常詳細(xì),需要的朋友參考下吧

經(jīng)過整理后得到以下幾種常用方式,供大家參考。

1. 使用過濾器

init() :該方法在tomcat容器啟動初始化過濾器時被調(diào)用,它在 Filter 的整個生命周期只會被調(diào)用一次。可以在這個方法中補(bǔ)充想要執(zhí)行的內(nèi)容。

@Component
public class MyFilter implements Filter {
    /**
     * init() :該方法在tomcat容器啟動初始化過濾器時被調(diào)用,它在 Filter 的整個生命周期只會被調(diào)用一次。
     * doFilter() :容器中的每一次請求都會調(diào)用該方法, FilterChain(放行) 用來調(diào)用下一個過濾器 Filter。
     * destroy(): 當(dāng)容器銷毀過濾器實例時調(diào)用該方法,在方法中銷毀或關(guān)閉資源,在過濾器 Filter 的整個生命周期也只會被調(diào)用一次。
     */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("Filter 前置");
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("Filter 處理中");
        filterChain.doFilter(servletRequest, servletResponse);
    }
    @Override
    public void destroy() {
        System.out.println("Filter 后置");
    }
}

2.實現(xiàn)InitializingBean接口,代碼如下:

@Component
public class MyInitStart2 implements InitializingBean {
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("在MyInitStart2中添加初始下方法");
    }
}

3.實現(xiàn)ApplicationListener接口,代碼如下:

@Component
public class MyInitStart3 implements ApplicationListener<ApplicationStartedEvent> {
    @Override
    public void onApplicationEvent(ApplicationStartedEvent event) {
        System.out.println("在MyInitStart3中添加初始下方法");
    }
}

4.實現(xiàn)ApplicationRunner接口,代碼如下:

@Component
public class MyInitStart4 implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("在MyInitStart4中添加初始下方法");
    }
}

5.實現(xiàn)CommandLineRunner接口,代碼如下:

@Component
public class MyInitStart5 implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("在MyInitStart5中添加初始下方法");
    }
}

6.使用@PostConstruct注解,代碼如下:

@Component
public class MyInitStart6 {
    @PostConstruct
    public void run() {
        System.out.println("在MyInitStart6中添加初始下方法");
    }
}

7.直接在啟動類下面調(diào)用方法

    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        ConfigurableApplicationContext run = SpringApplication.run(YabaoApplication.class, args);
        System.out.println("在啟動類添加初始下方法");
    }

其實我們也可以使用springboot定時器@Scheduled進(jìn)行實現(xiàn),啟動后就去執(zhí)行一次。

我們看下以上其中方法打印的順序:

 看到打印的信息后我們可以發(fā)現(xiàn)他們的執(zhí)行順序,filter是在最前面的。這幾種方法經(jīng)常會被用到,當(dāng)我們的項目啟動后需要調(diào)用對應(yīng)的方法,用來項目的初始化等。

到此這篇關(guān)于SpringBoot項目啟動執(zhí)行任務(wù)的幾種方式的文章就介紹到這了,更多相關(guān)SpringBoot啟動執(zhí)行任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中內(nèi)存分配的幾種方法

    Java中內(nèi)存分配的幾種方法

    本文主要介紹Java中幾種分配內(nèi)存的方法。我們會看到如何使用sun.misc.Unsafe來統(tǒng)一操作任意類型的內(nèi)存。以前用C語言開發(fā)的同學(xué)通常都希望能在Java中通過較底層的接口來操作內(nèi)存,他們一定會對本文中要講的內(nèi)容感興趣
    2014-03-03
  • Hibernate一對多關(guān)聯(lián)雙向關(guān)聯(lián)代碼實現(xiàn)分享

    Hibernate一對多關(guān)聯(lián)雙向關(guān)聯(lián)代碼實現(xiàn)分享

    Hibernate一對多關(guān)聯(lián)雙向關(guān)聯(lián)代碼實現(xiàn)分享,大家參考使用吧
    2013-12-12
  • Gauva使用ListenableFuture介紹說明

    Gauva使用ListenableFuture介紹說明

    并發(fā)是一個困難問題,但是通過強(qiáng)大和強(qiáng)大的抽象能夠顯著的簡化工作。為了簡化問題,Gauva使用ListenableFuture擴(kuò)展了JDK的Future接口,這篇文章主要介紹了Gauva使用ListenableFuture
    2023-01-01
  • Struts2中圖片以base64方式上傳至數(shù)據(jù)庫

    Struts2中圖片以base64方式上傳至數(shù)據(jù)庫

    這篇文章主要介紹了Struts2中圖片以base64方式上傳至數(shù)據(jù)庫的實現(xiàn)代碼,代碼分為前臺和后臺兩段,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • 在Spring中編寫事務(wù)的介紹

    在Spring中編寫事務(wù)的介紹

    今天小編就為大家分享一篇關(guān)于在Spring中編寫事務(wù)的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Spring中的自定義NamespaceHandler詳解

    Spring中的自定義NamespaceHandler詳解

    這篇文章主要介紹了Spring中的自定義NamespaceHandler詳解,通常情況下,Spring生態(tài)圈提供的功能已足夠使用,但不排除特殊情況下,需要匹配特殊及復(fù)雜的業(yè)務(wù)情況,Spring提供了可擴(kuò)展Schema支持,可以自定義命名空間進(jìn)行配置及解析,需要的朋友可以參考下
    2023-11-11
  • java中JVM中如何存取數(shù)據(jù)和相關(guān)信息詳解

    java中JVM中如何存取數(shù)據(jù)和相關(guān)信息詳解

    這篇文章主要介紹了JVM中如何存取數(shù)據(jù)和相關(guān)信息詳解,Java源代碼文件(.java后綴)會被Java編譯器編譯為字節(jié)碼文件,然后由JVM中的類加載器加載各個類的字節(jié)碼文件,加載完畢之后,交由JVM執(zhí)行引擎執(zhí)行。JVM中怎么存取數(shù)據(jù)和相關(guān)信息呢?,需要的朋友可以參考下
    2019-06-06
  • Java實現(xiàn)解析Excel復(fù)雜表頭

    Java實現(xiàn)解析Excel復(fù)雜表頭

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實現(xiàn)解析Excel復(fù)雜表頭功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01
  • SpringBoot中Zookeeper分布式鎖的原理和用法詳解

    SpringBoot中Zookeeper分布式鎖的原理和用法詳解

    Zookeeper是一個分布式協(xié)調(diào)服務(wù),它提供了高可用、高性能、可擴(kuò)展的分布式鎖機(jī)制,SpringBoot是一個基于Spring框架的開發(fā)框架,它提供了對Zookeeper分布式鎖的集成支持,本文將介紹SpringBoot中的 Zookeeper分布式鎖的原理和使用方法,需要的朋友可以參考下
    2023-07-07
  • java微信server錄音下載到自己server

    java微信server錄音下載到自己server

    這篇文章主要為大家詳細(xì)介紹了java微信server錄音下載到自己server的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論

荆门市| 临邑县| 五家渠市| 盐池县| 曲阳县| 江西省| 和田县| 邛崃市| 甘德县| 睢宁县| 库伦旗| 昌平区| 丘北县| 普兰店市| 松原市| 台北市| 香港 | 石泉县| 塔河县| 赤峰市| 手机| 石柱| 乳山市| 台州市| 霍邱县| 鄂州市| 河池市| 巍山| 凤凰县| 石林| 九江县| 昭觉县| 信宜市| 赤水市| 高平市| 双牌县| 荔浦县| 夏津县| 屏东县| 富宁县| 孝昌县|