SpringBoot統一異常處理
最近新建了個SpringBoot2.0的專案,因為原來一直使用的是傳統的Tomcat部署war包的形式,所以這次SpringBoot內建Tomcat部署jar包的時候遇到了很多問題。其中一個就是因為沒有外接的Tomcat容器導致無法按原來的方法優雅停機。
經過了反覆的搜尋發現SpringBoot可以引用spring-boot-starter-actuator來暴露shutdown埠。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
在pom檔案中加入上面的程式碼就OK了。
再在application.properties中加入下面的配置,這裡注意2.0和1.0的配置項不一樣。
management.endpoint.shutdown.enabled=true
將下面的地址埠換成實際的地址埠,之後輸入命令列。
curl -X POST localhost:port/actuator/shutdown
你就會發現404了!這就是最坑的地方,在SpringBoot1.0的時候這裡已經收到{"message": "Shutting down, bye..."}了。但是2.0還需要在application.properties加入一個配置項,將shutdown介面暴露出去。
management.endpoints.web.exposure.include=shutdown
這時SpringBoot2.0就可以優雅停機了,當然隨便這樣暴露介面並不安全,再加入一些安全的配置就OK了。
Java高架構師、分散式架構、高可擴充套件、高效能、高併發、效能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分散式專案實戰學習架構師視訊免費學習加群:835638062 點選連結加入群聊【Java高階架構】:https://jq.qq.com/?_wv=1027&k=5S3kL3v