权限管理系统搭建记录

权限管理系统

记录搭建基于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-apiintoview-upms-bizapi是只有entitydto等实体类,并把feign远程调用接口也放在这个下面,作为jar包分发到各个服务,这样就避免了每个服务都要引入openfeign进行调用,把upms的需要暴露远程调用的接口统一管理。biz是业务类controllerservice等,实现具体功能。这个结构模仿自pigX,这个报错原因是:原生的@EnableFeignClients 默认有个扫描范围,这个结构把feign写到了另外的地方,所以扫描不到了,pigX的做法是重写了@EnableFeignClients 注解,给basePackages增加了默认值,或者是3方法,给EnableFeignClients指定包。

pigX文档解释:

  1. 在t。Clients默认的扫描范围是com.pig4cloud.pig.admin 包的所有FeignClient`。
  2. 而由于微服务拆分所有的feignClient 都在 com.pig4cloud.pig.模块.api包里面,这样默认情况会扫描不到
  3. 除非明确指定扫描范围 @EnableFeignClients("com.pig4cloud.pig.模块.api")
  4. 使用了@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")

posted @ 2024-08-07 10:58  Wenenenenen  阅读(9)  评论(0编辑  收藏  举报