0%

扫包路径引发项目启动失败

指定扫包路径的坑

​ 由于项目包结构的修改对feign调用的类的编写修改了路径,原来的路径为cn.com.projectname.feign包下,新的feign需添加到cn.com.projectname.common.feign下。首次添加到该包下发现,新的feign类没有被加载到spring容器中,所以推测是扫包路径的问题,故通过@EnableFeignClients(basePackages = {"cn.com.projectname.feign", "cn.com.projectname.common.feign"})指定扫包路径,神奇的事情发生了,启动之后报错,内容为cn.com.projectname.common.feign下新增的那个feign类已经被加载到spring容器中,不允许二次加载!找了许久并没有找到什么问题。还尝试通过@FeignClient(contextId = "xxx")的方式指定创建类名称,也还是失败了,最后发现玄机是在@EnableFeignClientsbasePackages上,由于指定的两个包路径出现重叠部分,导致在扫包过程中重复添加某对象。

-------------本文结束感谢您的阅读-------------