技术前沿网
技术前沿网 找到你想要的开源项目,分享和交流
打开

DubboShutdownHook 与 springboot 中SpringApplication registerShutdownHook 冲突

0

主要版本: 
springboot 1.3.6.RELEASE; spring-context 4.2.7.RELEASE;

spring-test 4.2.7.RELEASE; dubbo: 2.8.4;Junit4.12;

错误日志:

1、输出test日志后再次执行ApplicationListener

2、DubboShutdownHook执行后,再执行spring容器的destory 异常

 

情况:

dubbo配置文件方式使用。使用springBoot构建工程。自定义了ApplicationListener。

在测试线程消亡时,会触发DubboShutdownHook ;

加上springApplication在createAndRefreshContext时也会registerShutdownHook,再次执行ApplicationListener并destory DisposableBean;

Spring -> AbstractApplicationContext

dubbo -> AbstractConfig

问题:

1、这个hook会再次触发ApplicationListener;

2、DubboShutdownHook 执行在先,springcontext的hook执行在后,但又再次执行了某些DubboShutdownHook做的事情。
因为dubbo中: AnnotationBean implements DisposableBean;

需要解决的:

1、如何处理这两种hook?关闭一种会不会有弊端?

2、在test时因是注解指定loader,没有找到方式关闭springApplication的Hook?

3、最次如何解决重新触发ApplicationListener问题?

我来回答
精彩回答
×