您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么關閉Spring Boot”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么關閉Spring Boot”吧!
優雅的關閉Spring Boot
1、實現 TomcatConnectorCustomizer 接口拿到Tomcat的連接獲取 Tomcat連接池
2、實現 ApplicationListener<ContextClosedEvent> 監聽服務器關閉事件,注冊JVM鉤子函數關閉Tomcat連接池
使用關閉鉤子的注意事項
1.關閉鉤子本質上是一個線程(也稱為Hook線程),對于一個JVM中注冊的多個關閉鉤子它們將會并發執行,所以JVM并不保證它們的執行順序;由于是并發執行的,那么很可能因為代碼不當導致出現競態條件或死鎖等問題,為了避免該問題,強烈建議只注冊一個鉤子并在其中執行一系列操作。 2.Hook線程會延遲JVM的關閉時間,這就要求在編寫鉤子過程中必須要盡可能的減少Hook線程的執行時間,避免hook線程中出現耗時的計算、等待用戶I/O等等操作。 3.關閉鉤子執行過程中可能被強制打斷,比如在操作系統關機時,操作系統會等待進程停止,等待超時,進程仍未停止,操作系統會強制的殺死該進程,在這類情況下,關閉鉤子在執行過程中被強制中止。 4.在關閉鉤子中,不能執行注冊、移除鉤子的操作,JVM將關閉鉤子序列初始化完畢后,不允許再次添加或者移除已經存在的鉤子,否則JVM拋出IllegalStateException異常。 5.不能在鉤子調用System.exit(),否則卡住JVM的關閉過程,但是可以調用Runtime.halt()。 6.Hook線程中同樣會拋出異常,對于未捕捉的異常,線程的默認異常處理器處理該異常(將異常信息打印到System.err),不會影響其他hook線程以及JVM正常退出。
到此,相信大家對“怎么關閉Spring Boot”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。