简单的下单例子,需要用到商品微服务和商品微服务
在微服务架构中,最常见的场景就是微服务直接互相调用,下面我们以电商系统中常见的用户下单为例子进行演示微服务之间的调用,用户向订单微服务发起一个下单的请求,在进行保存订单之前需要调用商品微服务查询商品的信息
我们一般把服务主动调用方称之为服务消费者,把服务的被调用方称为服务提供者
思路:用户下单,首先根据要下单的商品去查询商品是否存在,存在的话才能操作,也就是传一个pid(商品id),商品微服务收到请求会如果商品存在会返回一个商品实体类,也就是说订单微服务只需要一个传pid参数的查询方法,商品微服务需要一个返沪商品信息的方法
开始编写product商品的代码
dao
package com.wyh.dao;
import com.wyh.entity.Order;
import com.wyh.entity.Product;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @program: springcloud-alibaba
* @description: Product dao接口
* @author: 魏一鹤
* @createDate: 2022-05-01 22:54
**/
//根据jpa规范实现JpaRepository接口 有两个泛型 分别是实体类和id的数据类型
public interface ProductDao extends JpaRepository<Product,Integer> {
}
service
package com.wyh.service;
import com.wyh.entity.Product;
/**
* @program: springcloud-alibaba
* @description: Product service
* @author: 魏一鹤
* @createDate: 2022-05-01 22:53
**/
public interface ProductService {
//根据pid查询商品信息
Product findProductByPid(Integer pid);
}
serviceImpl
package com.wyh.service.impl;
import com.wyh.dao.ProductDao;
import com.wyh.entity.Product;
import com.wyh.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @program: springcloud-alibaba
* @description: Product service实现类
* @author: 魏一鹤
* @createDate: 2022-05-01 22:53
**/
@Service
public class ProductServiceImpl implements ProductService {
//注入商品product dao接口
@Autowired
ProductDao productDao;
@Override
public Product findProductByPid(Integer pid) {
//这个findById方法是jpa提供的不是我们写的 需要通过get获取 不然会报错
return productDao.findById<