源码解析

只是给默认的EnableFeignClients 增加了一个默认值。

  1. @Target(ElementType.TYPE)
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Documented
  4. @EnableFeignClients
  5. public @interface EnablePigxFeignClients {
  6. String[] value() default {};
  7. // 指定默认的扫描范围
  8. String[] basePackages() default {"com.pig4cloud.pigx"};
  9. Class<?>[] basePackageClasses() default {};
  10. Class<?>[] defaultConfiguration() default {};
  11. Class<?>[] clients() default {};
  12. }

以UPMS为例分析封装的好处

EnablePigFeignClients 注解解析【原理】 - 图1

  • 如果使用原生的EnableFeignClients 默认的扫描范围是 com.pig4cloud.pig.admin 包的所有FeignClient。
  • 而由于微服务拆分所有的feignClient 都在 com.pig4cloud.pig.模块.api包里面,这样默认情况会扫描不到
  • 除非明确指定扫描范围 @EnableFeignClients(“com.pig4cloud.pig.模块.api”)
  • 使用了@EnablePigFeignClients 默认扫描 com.pig4cloud.pigx下边的feignClient 更为简洁

@EnableFeignClients

  1. @EnableFeignClients
  2. @SpringCloudApplication
  3. public class PigAdminApplication {
  4. }

@EnablePigFeignClients

  1. @EnablePigFeignClients
  2. @SpringCloudApplication
  3. public class PigAdminApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(PigAdminApplication.class, args);
  6. }
  7. }

❤ 问题咨询

手势点击蓝字求关注简约风动态引导关注__2022-09-07+23_18_38.gif