携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
项目场景:
在微服务项目中加入有一个微服务的接口,很多其他的微服务都需要调用它,那么我们可以写在公共的项目中,而不需要每个微服务都建立一个相应 的feign
问题描述
如何减少每个项目都需要去写openfeign 很多其他的微服务都需要调用它,那么我们可以写在公共的项目中,而不需要每个微服务都建立一个相应 的feign
解决方案:
- 第一种解决方案 如下 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 当中测试通过
- 第二种解决方法 使用自定义注解 继承它原来的注解 第二种解决方案参考连接