spring-boot-starter-dubbo
spring-boot-starter-dubbo copied to clipboard
DubboHolderListener中Thread的启动时间问题
DubboHolderListener中onApplicationEvent(ApplicationEvent event)方法启动守护线程是通过event instanceof ContextRefreshedEvent为标准启动的,但是这个判断会导致spring boot都为完全启动,dubbo服务更是还未开始启动就创建一个常驻线程,这样会导致spring启动过程中有其他异常时,程序会一直挂起,不会自动退出,这里个人觉得事件判断应该采用event instanceof ContextRefreshedEvent,这样才能不干扰spring-boot容器的初始化启动。
赞同 👍
@Comven 为什么要启动一个守护线程啊?这里没看明白
守护线程可以让spring程序以非web方式运行,当使用了spring-boot-starter-web来构建程序的时候其实这里是没有太大必要的,而如果你想直接使用spring-boot-starter这个包来构建非web应用的话就可以帮助使程序不会在启动完成后自己结束,当然也可以自己写守护的线程。这是我理解的。