成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

管理SpringBoot項目的三個強大的功能是否用過?

開發 前端
通過指定spring.application.admin.enabled屬性,可以為應用程序啟用管理員相關的功能。這在平臺MBeanServer上公開了SpringApplicationAdminMXBean。你可以使用這個特性遠程管理Spring Boot應用程序。

環境:SpringBoot2.7.18

1. 管理功能Admin Features

通過指定spring.application.admin.enabled屬性,可以為應用程序啟用管理員相關的功能。這在平臺MBeanServer上公開了SpringApplicationAdminMXBean。你可以使用這個特性遠程管理Spring Boot應用程序。

spring:
  application:
    admin:
      enabled: true

開啟管理功能后,你可以通過JConsole查看MBean對當前的SpringBoot程序進行簡單的管理及查看。默認JMX的名稱為:org.springframework.boot:type=Admin,name=SpringApplication

圖片圖片

在操作菜單中,我們可以通過shutdown關閉應用程序,可以通過getProperty獲取應用中的配置屬性信息。

圖片圖片

獲取屬性信息:

圖片圖片

自定義JMX名稱:

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

注意:這里jmx-name格式:xxx:type=yyy,name=zzz

圖片圖片

2. 應用退出

每個SpringApplication都向JVM注冊一個關閉掛鉤,以確保ApplicationContext在退出時正常關閉。所有標準的Spring生命周期回調(如DisposableBean接口或@PreDestroy注釋)都可以使用。

2.1 自定義退出碼

@Component
@Order(-2)
public class PackExitCodeGenerator implements ExitCodeGenerator {


  @Override
  public int getExitCode() {
    System.out.println("PackExitCodeGenerator exit code 6...") ;
    return 6 ;
  }
}

你可以定義多個實現了ExitCodeGenerator的類,通過@Order定義順序,而SpringBoot只會返回第一個非零的退出碼。

SpringBoot的退出操作是調用當前容器ConfigurableApplicationContext#close方法。所以當前容器中所有實現了DisposableBean或使用了@PreDestory注解他們對應的回調方法都執行。

2.2 自定義DisposableBean

@Component
public class AppComponent implements DisposableBean {


  @Override
  public void destroy() throws Exception {
    System.out.println("Bean生命周期結束...") ;
  }
}

2.3 定義exit接口

@Resource
private ConfigurableApplicationContext context ;


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

2.4 測試

調用上的接口后,你將在控制臺看到如下輸出

圖片圖片

在關閉應用程序之前SpringBoot會發布ExitCodeEvent事件

@Component
public class PackAppExitListener implements ApplicationListener<ExitCodeEvent> {


  @Override
  public void onApplicationEvent(ExitCodeEvent event) {
    System.out.printf("監聽到應用退出事件,退出碼:%d%n", event.getExitCode()) ;
  }
}

結果輸出:

圖片圖片

3. 應用啟動跟蹤

在應用程序啟動期間,SpringApplication和ApplicationContext執行許多與應用程序生命周期、bean生命周期甚至處理應用程序事件相關的任務。有了ApplicationStartup, Spring框架允許你用StartupStep對象跟蹤應用程序的啟動順序。收集這些數據可以用于分析,或者只是為了更好地了解應用程序啟動過程。

你可以在設置SpringApplication實例時選擇ApplicationStartup實現。例如,要使用BufferingApplicationStartup,如下示例:

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

接下來需要通過可以通過Actuator暴露的端口,以JSON的形式查看信息。引入依賴

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

通過/startup接口查看Spring容器啟動過程的完整信息。

圖片圖片

在你的項目中你還可以注入ApplicationStartup,在自己的業務代碼中進行監控。

@Resource
private ApplicationStartup startup ;

這樣你就可以進行start和end方法調用進行記錄監控了。

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2023-09-13 09:20:00

日志配置Spring

2015-03-12 10:57:51

開源項目

2010-03-24 10:32:05

Python多線程

2011-12-23 09:37:59

云計算

2011-12-25 20:45:19

云計算云安全

2015-10-28 09:42:51

甄別眾籌項目方法

2021-05-17 09:52:53

工具dumiVue 組件

2012-02-06 08:54:12

項目管理

2023-01-02 17:25:43

LinuxQtFM文件管理器

2022-02-04 23:34:22

Windows 10技巧微軟

2009-12-23 10:37:24

網絡故障診斷

2011-07-05 09:16:43

項目經理

2010-03-10 10:41:23

Linux管理效率

2018-03-13 12:24:51

2012-02-28 09:41:00

Linux管理效率技巧

2023-10-26 07:29:06

mongodb十六進制ID

2013-09-26 12:31:54

Windows 8.1Windows 8.1

2023-04-26 11:14:11

IT領導者遠程工作

2013-05-03 10:11:26

信息安全BYOT

2017-11-01 06:40:33

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人一区二区三区久久久 | 夜夜骑天天干 | 97色在线观看免费视频 | 欧美在线a| 久久国产精品一区二区三区 | 亚洲网站在线观看 | av福利网站 | 国产视频导航 | 激情欧美日韩一区二区 | 九色网址 | 一区二区精品 | 国内精品久久影院 | 亚洲性视频在线 | 最近日韩中文字幕 | 91tv在线观看 | 黄色免费网站在线看 | 在线观看成人精品 | 成人精品国产一区二区4080 | 9久9久 | 国产你懂的在线观看 | 美女久久 | 做a视频在线观看 | 久久久久久黄 | 日韩精品 电影一区 亚洲 | 国产精品久久久亚洲 | 国产一区二区欧美 | 午夜精品一区二区三区在线观看 | 波多野结衣一二三区 | 天天操天天摸天天爽 | 久久99精品久久久久久 | 欧美日韩在线观看视频网站 | 亚洲欧美在线一区 | 天天射影院 | 精品国产乱码久久久久久图片 | 国产精品久久av | 成人精品鲁一区一区二区 | 中文字幕在线人 | 国产亚洲欧美在线视频 | 国产成人精品综合 | 九九视频在线观看 | 久久久青草 |