java.util.concurrent.Executors#newSingleThreadExecutor()中的ThreadFactory生成的Thread不是守护线程，并且没有相应逻辑在Spring初始化异常出现时调起ExecutorService的shutdown方法，导致spring初始化失败进程依旧存在，无法通过进程是否存在判断程序启动是否正常。建议更换ThreadFactory。可通过错误的application.yml配置复现问题。
Ordered {
    private final Logger logger = LoggerFactory.getLogger(getClass());
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        ApplicationContext applicationContext = event.getApplicationContext();
        BeanDefinitionRegistry registry = getBeanDefinitionRegistry(applicationContext);
        resolveUniqueApplicationConfigBean(registry, applicationContext);
    }
    private BeanDefinitionRegistry getBeanDefinitionRegistry(ApplicationContext applicationContext) {
        AutowireCapableBeanFactory beanFactory = applicationContext.getAutowireCapableBeanFactory();
        if (beanFactory instanceof BeanDefinitionRegistry) {
            return (BeanDefinitionRegistry) beanFactory;
        }
        throw new IllegalStateException("");
    }
    /**
     * Resolve the unique {@link ApplicationConfig} Bean
     * @param registry {@link BeanDefinitionRegistry} instance
     * @param beanFactory {@link ConfigurableListableBeanFactory} instance
     * @see EnableDubboConfig
     */
    private void resolveUniqueApplicationConfigBean(BeanDefinitionRegistry registry, ListableBeanFactory beanFactory) {
        String[] beansNames = beanNamesForTypeIncludingAncestors(beanFactory, ApplicationConfig.class);
        if (beansNames.length < 2) { 
            return;
        }
        Environment environment = beanFactory.getBean(ENVIRONMENT_BEAN_NAME, Environment.class);