RestTemplate代码:
// public Order queryOrderById(Long orderId) {// // 1.查询订单// Order order = orderMapper.findById(orderId);// //String url = "http://localhost:8081/user/" +order.getUserId();// String url = "http://userservice/user/" +order.getUserId();// User user= restTemplate.getForObject(url, User.class);//// order.setUser(user);//// // 4.返回// return order;//// }
单纯看以上的RestTemplate代码,不管是最原始的
String url = "http://localhost:8081/user/" +order.getUserId()
还是用Eureka或者nacos被配置过的
String url = "http://userservice/user/" +order.getUserId();
从外观上来看都很臃肿,不优雅
所以这里引入Feign
Feign的使用
引入依赖
创建一个接口
替换RestTemplate的方式
@Autowiredprivate UserClient userClient;public Order queryOrderById(Long orderId) {// 1.查询订单Order order = orderMapper.findById(orderId);User user = userClient.findById(order.getUserId());order.setUser(user);// 4.返回return order;}