class StartupSpringApplication extends SpringApplication {

    private final List<BaseStat> initializerStartupStatList = new ArrayList<>();

    public StartupSpringApplication(Class<?>... primarySources) {
        super(primarySources);
    }

    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Override
    protected void applyInitializers(ConfigurableApplicationContext context) {<FILL_FUNCTION_BODY>}

    public List<BaseStat> getInitializerStartupStatList() {
        return initializerStartupStatList;
    }
}

        for (ApplicationContextInitializer initializer : getInitializers()) {
            Class<?> requiredType = GenericTypeResolver.resolveTypeArgument(initializer.getClass(),
                ApplicationContextInitializer.class);
            if (requiredType != null) {
                Assert.isInstanceOf(requiredType, context, "Unable to call initializer.");
                BaseStat stat = new BaseStat();
                stat.setName(initializer.getClass().getName());
                stat.setStartTime(System.currentTimeMillis());
                initializer.initialize(context);
                stat.setEndTime(System.currentTimeMillis());
                initializerStartupStatList.add(stat);
            }
        }
    
<methods>public transient void <init>(Class<?>[]) ,public transient void <init>(org.springframework.core.io.ResourceLoader, Class<?>[]) ,public void addBootstrapRegistryInitializer(org.springframework.boot.BootstrapRegistryInitializer) ,public transient void addInitializers(ApplicationContextInitializer<?>[]) ,public transient void addListeners(ApplicationListener<?>[]) ,public void addPrimarySources(Collection<Class<?>>) ,public static transient int exit(org.springframework.context.ApplicationContext, org.springframework.boot.ExitCodeGenerator[]) ,public static org.springframework.boot.SpringApplication.Augmented from(ThrowingConsumer<java.lang.String[]>) ,public Set<java.lang.String> getAdditionalProfiles() ,public Set<java.lang.Object> getAllSources() ,public org.springframework.core.metrics.ApplicationStartup getApplicationStartup() ,public java.lang.ClassLoader getClassLoader() ,public java.lang.String getEnvironmentPrefix() ,public Set<ApplicationContextInitializer<?>> getInitializers() ,public Set<ApplicationListener<?>> getListeners() ,public Class<?> getMainApplicationClass() ,public org.springframework.core.io.ResourceLoader getResourceLoader() ,public static org.springframework.boot.SpringApplicationShutdownHandlers getShutdownHandlers() ,public Set<java.lang.String> getSources() ,public org.springframework.boot.WebApplicationType getWebApplicationType() ,public boolean isKeepAlive() ,public static void main(java.lang.String[]) throws java.lang.Exception,public transient org.springframework.context.ConfigurableApplicationContext run(java.lang.String[]) ,public static transient org.springframework.context.ConfigurableApplicationContext run(Class<?>, java.lang.String[]) ,public static org.springframework.context.ConfigurableApplicationContext run(Class<?>[], java.lang.String[]) ,public void setAddCommandLineProperties(boolean) ,public void setAddConversionService(boolean) ,public transient void setAdditionalProfiles(java.lang.String[]) ,public void setAllowBeanDefinitionOverriding(boolean) ,public void setAllowCircularReferences(boolean) ,public void setApplicationContextFactory(org.springframework.boot.ApplicationContextFactory) ,public void setApplicationStartup(org.springframework.core.metrics.ApplicationStartup) ,public void setBanner(org.springframework.boot.Banner) ,public void setBannerMode(org.springframework.boot.Banner.Mode) ,public void setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator) ,public void setDefaultProperties(Map<java.lang.String,java.lang.Object>) ,public void setDefaultProperties(java.util.Properties) ,public void setEnvironment(org.springframework.core.env.ConfigurableEnvironment) ,public void setEnvironmentPrefix(java.lang.String) ,public void setHeadless(boolean) ,public void setInitializers(Collection<? extends ApplicationContextInitializer<?>>) ,public void setKeepAlive(boolean) ,public void setLazyInitialization(boolean) ,public void setListeners(Collection<? extends ApplicationListener<?>>) ,public void setLogStartupInfo(boolean) ,public void setMainApplicationClass(Class<?>) ,public void setRegisterShutdownHook(boolean) ,public void setResourceLoader(org.springframework.core.io.ResourceLoader) ,public void setSources(Set<java.lang.String>) ,public void setWebApplicationType(org.springframework.boot.WebApplicationType) ,public static void withHook(org.springframework.boot.SpringApplicationHook, java.lang.Runnable) ,public static T withHook(org.springframework.boot.SpringApplicationHook, ThrowingSupplier<T>) <variables>public static final java.lang.String BANNER_LOCATION_PROPERTY,public static final java.lang.String BANNER_LOCATION_PROPERTY_VALUE,private static final java.lang.String SYSTEM_PROPERTY_JAVA_AWT_HEADLESS,private boolean addCommandLineProperties,private boolean addConversionService,private Set<java.lang.String> additionalProfiles,private boolean allowBeanDefinitionOverriding,private boolean allowCircularReferences,private org.springframework.boot.ApplicationContextFactory applicationContextFactory,private static final ThreadLocal<org.springframework.boot.SpringApplicationHook> applicationHook,private org.springframework.core.metrics.ApplicationStartup applicationStartup,private org.springframework.boot.Banner banner,private org.springframework.boot.Banner.Mode bannerMode,private org.springframework.beans.factory.support.BeanNameGenerator beanNameGenerator,private final List<org.springframework.boot.BootstrapRegistryInitializer> bootstrapRegistryInitializers,private Map<java.lang.String,java.lang.Object> defaultProperties,private org.springframework.core.env.ConfigurableEnvironment environment,private java.lang.String environmentPrefix,private boolean headless,private List<ApplicationContextInitializer<?>> initializers,private boolean isCustomEnvironment,private boolean keepAlive,private boolean lazyInitialization,private List<ApplicationListener<?>> listeners,private boolean logStartupInfo,private static final org.apache.commons.logging.Log logger,private Class<?> mainApplicationClass,private final Set<Class<?>> primarySources,private boolean registerShutdownHook,private org.springframework.core.io.ResourceLoader resourceLoader,static final org.springframework.boot.SpringApplicationShutdownHook shutdownHook,private Set<java.lang.String> sources,private org.springframework.boot.WebApplicationType webApplicationType