代码可读性差,编程体验不统一。
参数复杂URL难以维护。
在order-service的pom.xml配置文件中引入依赖:
org.springframework.cloud spring-cloud-starter-openfeign
在order-service的启动类添加@EnableFeignClients注解。
在clients层中编写Feign客户端:
@FeignClient("userservice")
public interface UserClient {@GetMapping("/user/{id}")User findById(@PathVariable("id") Long id);
}
修改orderServiceImpl:
@Service
public class OrderServiceImpl implements OrderService {@Autowiredprivate OrderMapper orderMapper;@Autowiredprivate UserClient userClient;/*** 根据id查找订单*/@Overridepublic Order selectById(Long id) {//1.查询订单Order order = orderMapper.getById(id);//2.利用Fein发起http请求,查询用户User user = userClient.findById(order.getUserId());order.setUser(user);return order;}
}
调用成功:


全局生效:
feign:client:config:default: #这里用default就是全局配置,如果是写微服务名称,则是针对某个服务loggerLevel: #日志级别
局部生效:
feign:client:config:userservice: #这里用default就是全局配置,如果是写微服务名称,则是针对某个服务loggerLevel: #日志级别
声明一个Bean:
public class FeignClientConfiguration {@Beanpublic Logger.Level feignLogLevel(){return Logger.Level.BASIC;}
}
全局配置,将这个Bean放在order-service的启动类上的@EnableFeignClients注解中:
@EnableFeignClients(defaultConfiguration = FeignClientConfiguration.class)
局部配置,将这个Bean放到@FeignClient这个注解中:
@FeignClient(value = "userservice",configuration = FeignClientConfiguration.class)
下一篇:描写自然美景的古诗词