美文网首页
openFeign在微服务中的使用

openFeign在微服务中的使用

作者: 半日孤独 | 来源:发表于2020-09-08 12:41 被阅读0次

    实现的是一个用户服务调用员工服务的某个接口

    openfeifn默认已集成ribbon

    启动类

    @EnableFeignClients //用于加载项目下的feign客户端
    @MapperScan({"com.gz.hc.common.log.dao"}) //我需要加载公共项目中的dao,公共项目不可启动
    @SpringBootApplication(scanBasePackages = {"com.gz.hc.*"}) //扫描其他项目下的类
    public class UserApplication {
        public static void main(String[] args) {
            SpringApplication.run(UserApplication.class, args);
        }
    }
    

    feignApi接口

    @FeignClient(name = "hc-emp") //指定客户端名称,还可配置降级处理类
    @RequestMapping("emp/post") //配置的接口要和员工服务一致
    @Service
    public interface EmployeeApi {
        @PostMapping("/selectEmp") //配置的接口要和员工服务一致
        String selectEmp( String userId);
    }
    

    调用

       @Autowired
        private EmployeeApi employeeApi;
        private void getJobNum() {
            Emp emp = new Emp();
            String empString = employeeApi.selectEmp(emp);
        }
    

    员工服务

        @PostMapping("emp/post/selectEmp")
        public String selectEmp(@RequestBody EmployeeParam emp) {
            return "";
        }
    

    错误

    \color{red}{ 报错: } Error creating bean with name 'ribbonLoadBalancingHttpClient'

    或者 ribbonLoadBalancingHttpClient' parameter 2

    原因:jar包冲突

    解决办法

    <!--openfeign,使用时得排出com.netflix.archaius,不然会出现冲突-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-openfeign</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>com.netflix.archaius</groupId>
                        <artifactId>archaius-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    

    相关文章

      网友评论

          本文标题:openFeign在微服务中的使用

          本文链接:https://www.haomeiwen.com/subject/awpdektx.html