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); } }