12.基于fegin实现服务调用

2020-05-26  本文已影响0人  LANSHENGYANG

基于Feign实现服务调用

什么是Feign

Feign使用

<!--Feign依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients //开启feign
public class ShopOrderApplication {}
@FeignClient(value = "service-product")
public interface ProductService {

    /* @FeignClient的value + @RequestMapping的value值,其实就是一个完整的请求地址
     * http://service-product/product/{pid}
     */
    @RequestMapping("/product/{pid}")
    Product findByPid(@PathVariable("pid") Integer pid);
}
/**
 * feign实现服务调用
 * @param pid
 * @return
 */
public Order order(@PathVariable("pid") Integer pid) {
    log.info("接收到{}号商品的下单请求,接下来调用商品微服务查询此商品信息", pid);

    Product product = productService.findByPid(pid);
    log.info("查询到{}号商品的信息,内容是:{}", pid, JSON.toJSONString(product));

    //下单(创建订单)
    Order order = new Order();
    order.setUid(1);
    order.setUsername("测试用户");
    order.setPid(pid);
    order.setPname(product.getPname());
    order.setPprice(product.getPprice());
    order.setNumber(1);

    orderService.createOrder(order);
    log.info("创建订单成功,订单信息为{}", JSON.toJSONString(order));
    return order;
}
上一篇下一篇

猜你喜欢

热点阅读