feign用法

发布时间 2023-10-17 17:39:20作者: 杨吃羊

feign可以用于微服务之间的调用,也可以不通过注册中心直接指定ip调用

提供者:被调用者不用添加feign依赖

@RestController
public class ProviderController {
    @PostMapping("/test")
    public String test(@RequestBody LoginForm loginForm){
        System.out.println(loginForm.getUsername()+loginForm.getPassword());
        return loginForm.getUsername()+loginForm.getPassword();
    }
}

消费者:

启动类加 @EnableFeignClients

定义feign接口:

@Component
@FeignClient(name="provider",url = "http://localhost:8081")//name表示被调用的微服务名,需要与注册中心里的一致,不然找不到,有name就不需要
url了,如果不通过注册中心调微服务而是直接通过ip地址调,就像http那种,就需要通过url来指定ip地址
public interface LoginFeign { @PostMapping("/test") String test(@RequestBody LoginForm loginForm); }

使用feign接口进行远程调用:

@RestController
public class FeignController {
    @Resource
    LoginFeign loginFeign;
    @PostMapping("/test")
    public String register(@RequestBody LoginForm loginForm) {
        System.out.println(loginForm.getUsername()+loginForm.getPassword());
        return loginFeign.test(loginForm);
    }
}