使用CSE开发,启动服务时发现xml bean文件加载两次
【摘要】 使用CSE开发微服务,启动时发现xml bean文件加载两次。这种情况一般是因为重复加载Application Context导致的,可能出现场景:一、SpringBoot接入CSE; 比如使用spring的注解@ImportResource导入了两次sping bean配置文件;二、CSE原生应用开发; 没有按照推荐的方法开发原生应用,比如多余地引入了spring-boot-s...
使用CSE开发微服务,启动时发现xml bean文件加载两次。
这种情况一般是因为重复加载Application Context导致的;
可能出现场景:
一、SpringBoot接入CSE;
比如使用spring的注解@ImportResource导入了两次sping bean配置文件;
二、CSE原生应用开发;
没有按照推荐的方法开发原生应用,比如多余地引入了spring-boot-starter-provider依赖
备注:
CSE原生应用开发定位过程:
ServiceComb的bean加载了两遍
跟踪到Spring代码的ConfigurationClassBeanDefinitionReader的loadBeanDefinitions方法,发现是加载了名为serviceCombSpringConfiguration的配置类导致的
这个ServiceCombSpringConfiguration会让Spring再次加载一遍ServiceComb提供的bean配置文件
所以问题根因就定位清楚了,原因是多引入了这个类,本来它只在SpringBoot应用接入CSE时才用的,而当前应用是原生ServiceComb应用,不需要引用它;
这个类所在的jar包是spring-boot-starter-servicecomb,在这个demo里是由spring-boot-starter-provider引入的
所以注释掉pom文件里面的spring-boot-starter-provider就可以解决问题了
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)