指定扫包路径的坑
由于项目包结构的修改对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")
的方式指定创建类名称,也还是失败了,最后发现玄机是在@EnableFeignClients
的basePackages
上,由于指定的两个包路径出现重叠部分,导致在扫包过程中重复添加某对象。