源码解析

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

@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 {};
}

以 UPMS 为例分析封装的好处

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

@EnableFeignClients

@EnableFeignClients
@SpringCloudApplication
public class PigAdminApplication {

}

@EnablePigFeignClients

@EnablePigFeignClients
@SpringCloudApplication
public class PigAdminApplication {
	public static void main(String[] args) {
		SpringApplication.run(PigAdminApplication.class, args);
	}

}

♥️ 获取支持

遇到问题?

如果您在使用过程中遇到任何问题、有功能建议或需求,请点击此卡片前往 Gitee 仓库提交 Issue。