1,API工程接口定义

       

    @FeginClient(vlaue="memberprovider",fallback=LoginServiceFeginHystrix.class)
    public interface LoginService{
    
      /***
         * 注册新用户
         * */
        @PostMapping(value = "/login/reg")
        public MemberDTO regMember(@RequestBody MemberVo memberVo) throws BusinessException, ServiceException;
    
    }
        熔断服务
    
      @Slf4j
    
    @Component
    public class LoginServiceFeginHystrix implements LoginService {
    
       @Override
        public MemberDTO regMember(MemberVo memberVo) throws BusinessException, ServiceException {
            log.error("====<<<<进入熔断服务..{}", "LoginServiceFeginHystrix.regMember()");
            return null;
        }
    }
    
    }

      

    2, 服务端工程实现

       

     @Override
     public MemberDTO regMember(@RequestBody MemberVo memberVo) throws BusinessException, ServiceException {
     //do somethings
    }
     
    

     

    3,消费端调用

     

     @PostMapping("/login/reg")
        public BaseResult reg(MemberVo memberVo) throws BusinessException, ServiceException {
     MemberDTO memberDTO = loginService.regMember(memberVo);
    ......
    }

     

    要注意要点:

      服务端实现一般使用工具生成,没有带 @RequestBody

     另外一个,注意接口定义的包名,与消费端包扫描的路径,确认消费端是否会把接口定义的路径扫描进去。

    如,接口路径 com.xuahua.api.common.xx

     而消费端的启动类在 com.xuahua.consumer.xx 这样就会扫不到,需要手动添加@ComponetScan(basePackages="")

     缺少这个导致请求过来的值为空。

     

     

     

    联系QQ:343886028 --加QQ群 145315854