Since some bean is not initialized successfully, spring boot application failed to start. Because the ExecutorService in AwaitingNonWebApplicationListener didn't shutdown, it blocked the application to exist, but the Spring boot application has stopped.

Solution suggestion：
Let AwaitingNonWebApplicationListener listen to ApplicationFailedEvent and release the resource(shutdown ExecutorService) when it receive ApplicationFailedEvent 。

the same issue as https://github.com/apache/dubbo/issues/8469
======Below is Chinese description==============

因为某个bean没有初始化成功， spring boot application启动失败。 但是因为AwaitingNonWebApplicationListener 里面的ExecutorService没有shutdown， 造成应用程序的进程没有退出，但是 Spring boot application 已经stop了。

解决方案：
让 AwaitingNonWebApplicationListener 支持 ApplicationFailedEvent， 在应用收到该事件后，release 资源。

另外好奇的问一下： 之前有监听 ContextClosedEvent， 并且在收到该事件后 release 资源，但是该事件在 2.7.8 版本里面被去掉了，不 知道是什么原因。
}
    }
    protected void release() {
        executeMutually(() -> {
            while (awaited.compareAndSet(false, true)) {
                if (logger.isInfoEnabled()) {
                    logger.info(" [Dubbo] Current Spring Boot Application is about to shutdown...");
                }
                condition.signalAll();
                
                shutdown();
            }
        });
    }
    private void shutdown() {
        if (!executorService.isShutdown()) {
            
            executorService.shutdown();
        }
    }
    private void executeMutually(Runnable runnable) {
        try {
            lock.lock();
            runnable.run();
        } finally {
            lock.unlock();
        }
    }
}