权限管理系统搭建记录
权限管理系统
记录搭建基于
oauth2+gateway权限管理系统中遇到的问题汇总。参考开源项目:pigX,mall-swarm,springcloud-learning
intoview-auth服务启动报错
2022-09-19 15:57:52.991 ERROR 15728 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in com.intoview.auth.config.Oauth2Config required a bean of type 'com.intoview.admin.api.feign.RemoteUserService' that could not be found.
Action:
Consider defining a bean of type 'com.intoview.admin.api.feign.RemoteUserService' in your configuration.
intoview-upms:是用户和系统管理服务,包结构是下分成了intoview-upms-api和intoview-upms-biz,api是只有entity,dto等实体类,并把feign远程调用接口也放在这个下面,作为jar包分发到各个服务,这样就避免了每个服务都要引入openfeign进行调用,把upms的需要暴露远程调用的接口统一管理。biz是业务类controller,service等,实现具体功能。这个结构模仿自pigX,这个报错原因是:原生的@EnableFeignClients 默认有个扫描范围,这个结构把feign写到了另外的地方,所以扫描不到了,pigX的做法是重写了@EnableFeignClients 注解,给basePackages增加了默认值,或者是3方法,给EnableFeignClients指定包。
pigX文档解释:
- 在t。Clients
默认的扫描范围是com.pig4cloud.pig.admin包的所有FeignClient`。 - 而由于微服务拆分所有的
feignClient都在com.pig4cloud.pig.模块.api包里面,这样默认情况会扫描不到 - 除非明确指定扫描范围
@EnableFeignClients("com.pig4cloud.pig.模块.api") - 使用了
@EnablePigFeignClients默认扫描com.pig4cloud.pigx下边的feignClient更为简洁
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@EnableFeignClients
public @interface EnablePigxFeignClients {
String[] value() default {};
// 指定默认的扫描范围
String[] basePackages() default {"com.pig4cloud.pigx"};
Class<?>[] basePackageClasses() default {};
Class<?>[] defaultConfiguration() default {};
Class<?>[] clients() default {};
}
解决方法:直接给调用方配置指定扫描路径为@EnableFeignClients("com.intoview")。

浙公网安备 33010602011771号