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的方式
@Autowired
private 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;
}