码迷,mamicode.com
首页 > 其他好文 > 详细

Feign的使用

时间:2019-01-05 14:17:58      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:rod   extends   import   pre   tor   col   amp   stat   bubuko   

一、Feign实现应用间的通信

声明式REST客户端(伪RPC),采用基于接口的注解。本质上是Http客户端,Http远程调用。

1、 在Order工程中的pom文件增加

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-openfeign</artifactId>
		</dependency>

  

2、增加注解@EnableFeignClients

 技术分享图片

 

3、声明要调用的接口

package com.example.demo.client;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * 需要在Product服务中要调的接口
 */
@FeignClient(name = "product") //product代表访问product应用下的msg接口
public interface ProductClient {

    @GetMapping("/msg") //
    String productMsg();
}

  

4、在Order应用调用

技术分享图片

 

二、Product工程

1、增加  List<ProductInfo> findByProductIdIn(List<String> productIdList);方法

package com.example.product.repository;

import com.example.product.dataobject.ProductInfo;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;


public interface ProductInfoRepository extends JpaRepository<ProductInfo, String> {
    //查询所有在架的商品
    List<ProductInfo> findByProductStatus(Integer productStatus);

    List<ProductInfo> findByProductIdIn(List<String> productIdList);
}

  

2、Server层

@Service
public class ProductServiceImpl  implements ProductService{

    @Autowired
    private ProductInfoRepository productInfoRepository;


    /**
     * 查询商品列表
     *
     * @param productIdList
     */
    @Override
    public List<ProductInfo> findList(List<String> productIdList) {
        return productInfoRepository.findByProductIdIn(productIdList);
    }
}

 

接口

public interface ProductService {


    /**
     * 查询商品列表
     * @param productIdList
     */
    List<ProductInfo> findList(List<String> productIdList);
}

  

3、Controller层

@RestController
@RequestMapping("/product")
public class ProductController {

    @Autowired
    private ProductService productService;


    /**
     * 获取商品列表(给订单服务用)
     * @param productIdList
     * @return
     */
    @GetMapping("/listForOrder")
    public List<ProductInfo> listForOrder(List<String> productIdList){
        return  productService.findList(productIdList);
    }
}

  

Feign的使用

标签:rod   extends   import   pre   tor   col   amp   stat   bubuko   

原文地址:https://www.cnblogs.com/linlf03/p/10224236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!