openFeign 多个微服务当中都需要使用到粉丝微服务 如何共用

237 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

项目场景:

在微服务项目中加入有一个微服务的接口,很多其他的微服务都需要调用它,那么我们可以写在公共的项目中,而不需要每个微服务都建立一个相应 的feign


问题描述

如何减少每个项目都需要去写openfeign 很多其他的微服务都需要调用它,那么我们可以写在公共的项目中,而不需要每个微服务都建立一个相应 的feign


解决方案:

  1. 第一种解决方案 如下 1.1 我们的common必须与其他子项目在同一个父工程下。并且包名前缀一致,比如 cn.itzhouwei
package cn.itzhouwei.anchor;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
import org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;

/*****
 *主播服务
 *
 */
@SpringBootApplication
@ComponentScan(basePackages = {"cn.itzhouwei","cn.zws"})
@EnableDiscoveryClient
@MapperScan(basePackages ="cn.itzhouwei.anchor.mapper")
//开启openFeign 远程调用  扩大注解扫描范围 
@EnableFeignClients(basePackages = {"cn.itzhouwei"}) 
public class AnchorApplication {
    public static void main(String[] args) {

        SpringApplication.run(AnchorApplication.class, args);
    }
}

以上的代码 在springboot 2.6.7 版本 spring-cloud-alibaba. 版本 2021.0.1.0 当中测试通过

  1. 第二种解决方法 使用自定义注解 继承它原来的注解 第二种解决方案参考连接