欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot啟動及退出加載項的方法

 更新時間:2019年04月29日 11:35:59   作者:如期而至  
這篇文章主要介紹了Spring Boot啟動及退出加載項的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在一個初春的下午,甲跟我說,要在Spring Boot啟動服務(wù)的時候,設(shè)置表自增的起始值。

于是我用屁股想了一下,不就是在main方法里折騰嘛。

后來實際操作了一把,發(fā)現(xiàn)屁股被打了。

于是乎,找到官方文檔(以2.1.4為例),找到這一段:

如果你需要在啟動SpringApplication后執(zhí)行一些具體的代碼,你可以實現(xiàn)ApplicaitonRunner或者CommandLineRunner接口。兩個接口都實現(xiàn)了一個工作方式相同的run方法,該方法僅會在SpringApplication.run(...)前執(zhí)行。

唯一不同的是實現(xiàn)CommandLineRunner接口的run方法參數(shù)為String類型,而實現(xiàn)ApplicaitonRunnerrun方法的參數(shù)則是需要ApplicationArguments。官方文檔中有個例子供參考。

如果有多個ApplicaitonRunner或者CommandLineRunner接口的實現(xiàn)存在啟動順序,則可以使用org.springframework.core.Ordered接口或者org.springframework.core.annotation.Order注解的形式來給他們排序。

由于我沒有參數(shù)類型等的限制,所以用哪個接口都一樣,寫個跟官方不一樣的,于是代碼大概長這樣:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

@Component
public class InstructionStart implements ApplicationRunner {

  private Logger logger = LoggerFactory.getLogger(this.getClass());

  @Autowired
  private JdbcTemplate template;

  @Override
  public void run(ApplicationArguments applicationArguments) throws Exception {
    String increment = "0";
    logger.info("初始化遞增起始值為:{}", increment);
    template.execute("ALTER TABLE `table` AUTO_INCREMENT = " + increment);
  }
}

深刻的意識到腦子和屁股一樣重要。

寫完啟動項,那么再把退出也說一下:

每一個SpringApplication都應(yīng)該向JVM注冊一個鉤子函數(shù)來確保ApplicationContext能優(yōu)雅地關(guān)閉。使所有的標(biāo)準(zhǔn)Spring生命周期回調(diào)(例如DisposableBean接口和@PreDestroy注解)都可用。

此外,如果你希望beans在調(diào)用SpringApplication.exit()時返回特定的退出代碼,則可以實現(xiàn)org.springframework.boot.ExitCodeGenerator接口,這些退出代碼會被傳給System.exit()作為返回的狀態(tài)碼。官方還給了個例子,就是下面這個。

@SpringBootApplication
public class ExitCodeApplication {

  @Bean
  public ExitCodeGenerator exitCodeGenerator() {
    return () -> 42;
  }

  public static void main(String[] args) {
    System.exit(SpringApplication
        .exit(SpringApplication.run(ExitCodeApplication.class, args)));
  }
}

當(dāng)然,ExitCodeGenerator也可以由異常來實現(xiàn),當(dāng)遇到一個這樣的異常時,Sprin Boot會返回實現(xiàn)了getExitCode()方法的退出代碼。

后面退出部分翻譯地磕磕碰碰的,有不對的地方歡迎指正。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java字符串相似度算法

    java字符串相似度算法

    這篇文章主要介紹了java字符串相似度算法,是Java實現(xiàn)比較典型的算法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Java實現(xiàn)讀取163郵箱,qq郵箱的郵件內(nèi)容

    Java實現(xiàn)讀取163郵箱,qq郵箱的郵件內(nèi)容

    這篇文章主要利用Java語言實現(xiàn)讀取163郵箱和qq郵箱的郵件內(nèi)容,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手試一試
    2022-02-02
  • java線程之join方法的使用介紹

    java線程之join方法的使用介紹

    本篇文章介紹了,java線程之join方法的使用分析,需要的朋友參考下
    2013-05-05
  • Java如何導(dǎo)入Jsoup庫做一個有趣的爬蟲項目

    Java如何導(dǎo)入Jsoup庫做一個有趣的爬蟲項目

    Jsoup庫是一款Java的HTML解析器,可用于從網(wǎng)絡(luò)或本地文件中獲取HTML文檔并解析其中的數(shù)據(jù),這篇文章給大家介紹Java導(dǎo)入Jsoup庫做一個有趣的爬蟲項目,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • Java求出任意數(shù)字的各個位數(shù)之和方式

    Java求出任意數(shù)字的各個位數(shù)之和方式

    這篇文章主要介紹了Java求出任意數(shù)字的各個位數(shù)之和方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bindings處理方法

    maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bi

    這篇文章主要給大家介紹了關(guān)于maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bindings的處理方法,這個問題通常是因為項目中存在多個SLF4J的實現(xiàn)綁定(bindings)導(dǎo)致的沖突,需要的朋友可以參考下
    2024-02-02
  • springboot?實現(xiàn)不同context-path下的會話共享

    springboot?實現(xiàn)不同context-path下的會話共享

    這篇文章主要介紹了springboot?實現(xiàn)不同context-path下的會話共享,基于很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java 添加Word目錄的2種方法示例代碼詳解

    Java 添加Word目錄的2種方法示例代碼詳解

    目錄是一種能夠快速、有效地幫助讀者了解文檔或書籍主要內(nèi)容的方式。這篇文章主要介紹了Java 添加Word目錄的2種方法 ,需要的朋友可以參考下
    2019-06-06
  • Java中判斷對象是否為空的不同方法

    Java中判斷對象是否為空的不同方法

    在Java編程中,經(jīng)常會遇到判斷對象是否為空的情況,本篇將深入探討Java中判斷對象是否為空的不同方法,包括使用條件判斷、使用Java 8的Optional類、使用Apache Commons Lang庫等,通過詳細的解釋和舉例說明,幫助讀者正確處理空對象問題,需要的朋友一起看看吧
    2023-11-11
  • Action訪問Servlet的API的簡單實例

    Action訪問Servlet的API的簡單實例

    下面小編就為大家?guī)硪黄狝ction訪問Servlet的API的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06

最新評論