日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

管理SpringBoot項(xiàng)目的三個(gè)強(qiáng)大的功能是否用過?

來(lái)源: 責(zé)編: 時(shí)間:2024-07-02 17:36:43 137觀看
導(dǎo)讀環(huán)境:SpringBoot2.7.181. 管理功能Admin Features通過指定spring.application.admin.enabled屬性,可以為應(yīng)用程序啟用管理員相關(guān)的功能。這在平臺(tái)MBeanServer上公開了SpringApplicationAdminMXBean。你可以使用這個(gè)特性

環(huán)境:SpringBoot2.7.18JGL28資訊網(wǎng)——每日最新資訊28at.com

1. 管理功能Admin Features

通過指定spring.application.admin.enabled屬性,可以為應(yīng)用程序啟用管理員相關(guān)的功能。這在平臺(tái)MBeanServer上公開了SpringApplicationAdminMXBean。你可以使用這個(gè)特性遠(yuǎn)程管理Spring Boot應(yīng)用程序。JGL28資訊網(wǎng)——每日最新資訊28at.com

spring:  application:    admin:      enabled: true

開啟管理功能后,你可以通過JConsole查看MBean對(duì)當(dāng)前的SpringBoot程序進(jìn)行簡(jiǎn)單的管理及查看。默認(rèn)JMX的名稱為:org.springframework.boot:type=Admin,name=SpringApplicationJGL28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片JGL28資訊網(wǎng)——每日最新資訊28at.com

在操作菜單中,我們可以通過shutdown關(guān)閉應(yīng)用程序,可以通過getProperty獲取應(yīng)用中的配置屬性信息。JGL28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片JGL28資訊網(wǎng)——每日最新資訊28at.com

獲取屬性信息:JGL28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片JGL28資訊網(wǎng)——每日最新資訊28at.com

自定義JMX名稱:JGL28資訊網(wǎng)——每日最新資訊28at.com

spring:  application:    admin:      enabled: true      jmx-name: com.pack:type=AKF,name=PackAPP

注意:這里jmx-name格式:xxx:type=yyy,name=zzzJGL28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片JGL28資訊網(wǎng)——每日最新資訊28at.com

2. 應(yīng)用退出

每個(gè)SpringApplication都向JVM注冊(cè)一個(gè)關(guān)閉掛鉤,以確保ApplicationContext在退出時(shí)正常關(guān)閉。所有標(biāo)準(zhǔn)的Spring生命周期回調(diào)(如DisposableBean接口或@PreDestroy注釋)都可以使用。JGL28資訊網(wǎng)——每日最新資訊28at.com

2.1 自定義退出碼

@Component@Order(-2)public class PackExitCodeGenerator implements ExitCodeGenerator {  @Override  public int getExitCode() {    System.out.println("PackExitCodeGenerator exit code 6...") ;    return 6 ;  }}

你可以定義多個(gè)實(shí)現(xiàn)了ExitCodeGenerator的類,通過@Order定義順序,而SpringBoot只會(huì)返回第一個(gè)非零的退出碼。JGL28資訊網(wǎng)——每日最新資訊28at.com

SpringBoot的退出操作是調(diào)用當(dāng)前容器ConfigurableApplicationContext#close方法。所以當(dāng)前容器中所有實(shí)現(xiàn)了DisposableBean或使用了@PreDestory注解他們對(duì)應(yīng)的回調(diào)方法都執(zhí)行。JGL28資訊網(wǎng)——每日最新資訊28at.com

2.2 自定義DisposableBean

@Componentpublic class AppComponent implements DisposableBean {  @Override  public void destroy() throws Exception {    System.out.println("Bean生命周期結(jié)束...") ;  }}

2.3 定義exit接口

@Resourceprivate ConfigurableApplicationContext context ;@GetMapping("")public Object exit() {  SpringApplication.exit(context) ;  return "exit" ;}

2.4 測(cè)試

調(diào)用上的接口后,你將在控制臺(tái)看到如下輸出JGL28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片JGL28資訊網(wǎng)——每日最新資訊28at.com

在關(guān)閉應(yīng)用程序之前SpringBoot會(huì)發(fā)布ExitCodeEvent事件JGL28資訊網(wǎng)——每日最新資訊28at.com

@Componentpublic class PackAppExitListener implements ApplicationListener<ExitCodeEvent> {  @Override  public void onApplicationEvent(ExitCodeEvent event) {    System.out.printf("監(jiān)聽到應(yīng)用退出事件,退出碼:%d%n", event.getExitCode()) ;  }}

結(jié)果輸出:JGL28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片JGL28資訊網(wǎng)——每日最新資訊28at.com

3. 應(yīng)用啟動(dòng)跟蹤

在應(yīng)用程序啟動(dòng)期間,SpringApplication和ApplicationContext執(zhí)行許多與應(yīng)用程序生命周期、bean生命周期甚至處理應(yīng)用程序事件相關(guān)的任務(wù)。有了ApplicationStartup, Spring框架允許你用StartupStep對(duì)象跟蹤應(yīng)用程序的啟動(dòng)順序。收集這些數(shù)據(jù)可以用于分析,或者只是為了更好地了解應(yīng)用程序啟動(dòng)過程。JGL28資訊網(wǎng)——每日最新資訊28at.com

你可以在設(shè)置SpringApplication實(shí)例時(shí)選擇ApplicationStartup實(shí)現(xiàn)。例如,要使用BufferingApplicationStartup,如下示例:JGL28資訊網(wǎng)——每日最新資訊28at.com

SpringApplication application = new SpringApplication(SpringbootComprehensiveApplication.class) ;application.setApplicationStartup(new BufferingApplicationStartup(2048)) ;application.run(args) ;

接下來(lái)需要通過可以通過Actuator暴露的端口,以JSON的形式查看信息。引入依賴JGL28資訊網(wǎng)——每日最新資訊28at.com

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-actuator</artifactId></dependency>

通過/startup接口查看Spring容器啟動(dòng)過程的完整信息。JGL28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片JGL28資訊網(wǎng)——每日最新資訊28at.com

在你的項(xiàng)目中你還可以注入ApplicationStartup,在自己的業(yè)務(wù)代碼中進(jìn)行監(jiān)控。JGL28資訊網(wǎng)——每日最新資訊28at.com

@Resourceprivate ApplicationStartup startup ;

這樣你就可以進(jìn)行start和end方法調(diào)用進(jìn)行記錄監(jiān)控了。JGL28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-98190-0.html管理SpringBoot項(xiàng)目的三個(gè)強(qiáng)大的功能是否用過?

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 一網(wǎng)打盡:12 個(gè) find() 函數(shù)在 Python 中的創(chuàng)意實(shí)踐

下一篇: 微服務(wù) | 微服務(wù)之Feign 與 Ribbon

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 齐齐哈尔市| 长丰县| 西安市| 蚌埠市| 秭归县| 丰顺县| 安宁市| 武夷山市| 得荣县| 珠海市| 义乌市| 余庆县| 恩施市| 行唐县| 浠水县| 喀喇| 商丘市| 岳阳县| 呼图壁县| 延吉市| 洛川县| 东乡| 长治市| 荥阳市| 南雄市| 安徽省| 河西区| 中阳县| 闽侯县| 固安县| 和林格尔县| 盐源县| 诸城市| 北票市| 刚察县| 东莞市| 凤台县| 江陵县| 千阳县| 扎赉特旗| 会同县|