自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 前端
通過(guò)指定spring.application.admin.enabled屬性,可以為應(yīng)用程序啟用管理員相關(guān)的功能。這在平臺(tái)MBeanServer上公開了SpringApplicationAdminMXBean。你可以使用這個(gè)特性遠(yuǎn)程管理Spring Boot應(yīng)用程序。

環(huán)境:SpringBoot2.7.18

1. 管理功能Admin Features

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

spring:
  application:
    admin:
      enabled: true

開啟管理功能后,你可以通過(guò)JConsole查看MBean對(duì)當(dāng)前的SpringBoot程序進(jìn)行簡(jiǎn)單的管理及查看。默認(rèn)JMX的名稱為:org.springframework.boot:type=Admin,name=SpringApplication

圖片圖片

在操作菜單中,我們可以通過(guò)shutdown關(guān)閉應(yīng)用程序,可以通過(guò)getProperty獲取應(yīng)用中的配置屬性信息。

圖片圖片

獲取屬性信息:

圖片圖片

自定義JMX名稱:

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

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

圖片圖片

2. 應(yīng)用退出

每個(gè)SpringApplication都向JVM注冊(cè)一個(gè)關(guān)閉掛鉤,以確保ApplicationContext在退出時(shí)正常關(guān)閉。所有標(biāo)準(zhǔn)的Spring生命周期回調(diào)(如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 ;
  }
}

你可以定義多個(gè)實(shí)現(xiàn)了ExitCodeGenerator的類,通過(guò)@Order定義順序,而SpringBoot只會(huì)返回第一個(gè)非零的退出碼。

SpringBoot的退出操作是調(diào)用當(dāng)前容器ConfigurableApplicationContext#close方法。所以當(dāng)前容器中所有實(shí)現(xiàn)了DisposableBean或使用了@PreDestory注解他們對(duì)應(yīng)的回調(diào)方法都執(zhí)行。

2.2 自定義DisposableBean

@Component
public class AppComponent implements DisposableBean {


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

2.3 定義exit接口

@Resource
private ConfigurableApplicationContext context ;


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

2.4 測(cè)試

調(diào)用上的接口后,你將在控制臺(tái)看到如下輸出

圖片圖片

在關(guān)閉應(yīng)用程序之前SpringBoot會(huì)發(fā)布ExitCodeEvent事件

@Component
public class PackAppExitListener implements ApplicationListener<ExitCodeEvent> {


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

結(jié)果輸出:

圖片圖片

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)過(guò)程。

你可以在設(shè)置SpringApplication實(shí)例時(shí)選擇ApplicationStartup實(shí)現(xiàn)。例如,要使用BufferingApplicationStartup,如下示例:

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

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

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

通過(guò)/startup接口查看Spring容器啟動(dòng)過(guò)程的完整信息。

圖片圖片

在你的項(xiàng)目中你還可以注入ApplicationStartup,在自己的業(yè)務(wù)代碼中進(jìn)行監(jiān)控。

@Resource
private ApplicationStartup startup ;

這樣你就可以進(jìn)行start和end方法調(diào)用進(jìn)行記錄監(jiān)控了。

責(zé)任編輯:武曉燕 來(lái)源: Spring全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2023-09-13 09:20:00

日志配置Spring

2015-03-12 10:57:51

開源項(xiàng)目

2010-03-24 10:32:05

Python多線程

2011-12-25 20:45:19

云計(jì)算云安全

2015-10-28 09:42:51

甄別眾籌項(xiàng)目方法

2011-12-23 09:37:59

云計(jì)算

2021-05-17 09:52:53

工具dumiVue 組件

2012-02-06 08:54:12

項(xiàng)目管理

2023-01-02 17:25:43

LinuxQtFM文件管理器

2022-02-04 23:34:22

Windows 10技巧微軟

2009-12-23 10:37:24

網(wǎng)絡(luò)故障診斷

2011-07-05 09:16:43

項(xiàng)目經(jīng)理

2012-02-28 09:41:00

Linux管理效率技巧

2023-10-26 07:29:06

mongodb十六進(jìn)制ID

2010-03-10 10:41:23

Linux管理效率

2018-03-13 12:24:51

2023-04-26 11:14:11

IT領(lǐng)導(dǎo)者遠(yuǎn)程工作

2013-09-26 12:31:54

Windows 8.1Windows 8.1

2013-05-03 10:11:26

信息安全BYOT

2022-01-24 15:57:34

Python返回功能代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)