Module bus.starter

Class SpringApplication

java.lang.Object
org.springframework.boot.SpringApplication
org.miaixz.bus.spring.boot.SpringApplication

public class SpringApplication extends org.springframework.boot.SpringApplication
扩展 SpringApplication,计算 ApplicationContextInitializer 初始化时间。

该类继承自Spring Boot的SpringApplication,增加了对ApplicationContextInitializer初始化时间的统计功能。 通过记录每个初始化器的开始和结束时间,计算初始化耗时,并将统计信息存储在列表中,便于后续分析。

Since:
Java 17+
Author:
Kimi Liu
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.springframework.boot.SpringApplication

    org.springframework.boot.SpringApplication.AbandonedRunException, org.springframework.boot.SpringApplication.Augmented, org.springframework.boot.SpringApplication.Running
  • Field Summary

    Fields inherited from class org.springframework.boot.SpringApplication

    BANNER_LOCATION_PROPERTY, BANNER_LOCATION_PROPERTY_VALUE
  • Constructor Summary

    Constructors
    Constructor
    Description
    SpringApplication(Class<?>... primarySources)
    使用主源类创建一个新的SpringApplication实例
    SpringApplication(org.springframework.core.io.ResourceLoader resourceLoader, Class<?>... primarySources)
    使用资源加载器和主源类创建一个新的SpringApplication实例
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    applyInitializers(org.springframework.context.ConfigurableApplicationContext context)
    应用所有已注册的ApplicationContextInitializer
    获取所有ApplicationContextInitializer的初始化统计信息列表
    static org.springframework.context.ConfigurableApplicationContext
    run(Class<?>[] primarySources, String[] args)
    使用主源类数组和参数运行Spring应用程序
    static org.springframework.context.ConfigurableApplicationContext
    run(Class<?> primarySource, String... args)
    使用主源类和参数运行Spring应用程序
    org.springframework.context.ConfigurableApplicationContext
    run(String... args)
    运行Spring应用程序

    Methods inherited from class org.springframework.boot.SpringApplication

    addBootstrapRegistryInitializer, addInitializers, addListeners, addPrimarySources, afterRefresh, bindToSpringApplication, configureEnvironment, configureProfiles, configurePropertySources, createApplicationContext, createBeanDefinitionLoader, exit, from, getAdditionalProfiles, getAllSources, getApplicationLog, getApplicationStartup, getClassLoader, getEnvironmentPrefix, getInitializers, getListeners, getMainApplicationClass, getResourceLoader, getShutdownHandlers, getSources, getWebApplicationType, isKeepAlive, load, logStartupInfo, logStartupInfo, logStartupProfileInfo, main, postProcessApplicationContext, refresh, registerLoggedException, setAddCommandLineProperties, setAddConversionService, setAdditionalProfiles, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setApplicationContextFactory, setApplicationStartup, setBanner, setBannerMode, setBeanNameGenerator, setDefaultProperties, setDefaultProperties, setEnvironment, setEnvironmentPrefix, setHeadless, setInitializers, setKeepAlive, setLazyInitialization, setListeners, setLogStartupInfo, setMainApplicationClass, setRegisterShutdownHook, setResourceLoader, setSources, setWebApplicationType, withHook, withHook

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SpringApplication

      public SpringApplication(Class<?>... primarySources)
      使用主源类创建一个新的SpringApplication实例
      Parameters:
      primarySources - 主源类数组
    • SpringApplication

      public SpringApplication(org.springframework.core.io.ResourceLoader resourceLoader, Class<?>... primarySources)
      使用资源加载器和主源类创建一个新的SpringApplication实例
      Parameters:
      resourceLoader - 资源加载器
      primarySources - 主源类数组
  • Method Details

    • run

      public static org.springframework.context.ConfigurableApplicationContext run(Class<?> primarySource, String... args)
      使用主源类和参数运行Spring应用程序

      这是一个静态工厂方法,用于创建并运行SpringApplication实例

      Parameters:
      primarySource - 主源类
      args - 命令行参数
      Returns:
      可配置的应用程序上下文
    • run

      public static org.springframework.context.ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args)
      使用主源类数组和参数运行Spring应用程序

      这是一个静态工厂方法,用于创建并运行SpringApplication实例

      Parameters:
      primarySources - 主源类数组
      args - 命令行参数
      Returns:
      可配置的应用程序上下文
    • run

      public org.springframework.context.ConfigurableApplicationContext run(String... args)
      运行Spring应用程序

      重写父类的run方法,保持原有功能不变

      Overrides:
      run in class org.springframework.boot.SpringApplication
      Parameters:
      args - 命令行参数
      Returns:
      可配置的应用程序上下文
    • applyInitializers

      protected void applyInitializers(org.springframework.context.ConfigurableApplicationContext context)
      应用所有已注册的ApplicationContextInitializer

      重写父类的applyInitializers方法,增加了对初始化器执行时间的统计功能。 在执行每个初始化器之前记录开始时间,执行完成后记录结束时间,计算耗时并保存统计信息。

      Overrides:
      applyInitializers in class org.springframework.boot.SpringApplication
      Parameters:
      context - 可配置的应用程序上下文
    • getInitializerStartupStatList

      public List<BaseMetrics> getInitializerStartupStatList()
      获取所有ApplicationContextInitializer的初始化统计信息列表
      Returns:
      初始化统计信息列表