微服务-服务拆分

文章目录

服务拆分及注意事项

每个服务有独立的数据库,订单模块需要查询用户信息时,通过调用用户模块的接口,自身的数据库并没有用户信息。

服务拆分案例

案例结构

案例有2个微服务,order-service微服务对应的表为cloud-order,user-service微服务对应的表为cloud-user。在实际生产部署时,这两个表会被放在不同的数据库中,没有办法做关联查询。

需求:根据订单id查询订单的同时,把订单所属的用户信息一起返回

案例代码分析

  1. 配置类
java 复制代码
/**
 * @SpringBootConfiguration继承自@Configuration,
 * 二者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中
 */
@SpringBootConfiguration
public class WebConfiguration {

    @Bean //相当于@Controller,@Service等
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}
  1. OrderService类
java 复制代码
@Service
public class OrderService {

    @Autowired
    private OrderMapper orderMapper;

    // 获取restTemplate对象
    @Autowired
    private RestTemplate restTemplate;

    public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        // 2.定义url
        String url = "http://localhost:8081/user/"+order.getUserId();
        // 3.发送http请求
        User user = restTemplate.getForObject(url, User.class);
        // 4.封装user
        order.setUser(user);
        // 5.返回
        return order;
    }
}
  1. 测试
相关推荐
苏瞳儿8 分钟前
java对数据库的增删改查
java·数据库·oracle
zhangjw3411 分钟前
Java基础语法:变量、数据类型与运算符,从原理到实战
java·开发语言
yaoxin5211233 小时前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
NotFound4864 小时前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
一 乐5 小时前
医院挂号|基于springboot + vue医院挂号管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·医院挂号管理系统
鱼鳞_6 小时前
Java学习笔记_Day29(异常)
java·笔记·学习
烟锁池塘柳06 小时前
一文讲透 C++ / Java 中方法重载(Overload)与方法重写(Override)在调用时机等方面的区别
java·c++·面向对象
一叶飘零_sweeeet6 小时前
深入拆解 Fork/Join 框架:核心原理、分治模型与参数调优实战
java·并发编程
云烟成雨TD6 小时前
Spring AI Alibaba 1.x 系列【23】短期记忆
java·人工智能·spring
摇滚侠6 小时前
帮我整理一份 IDEA 开发中常用快捷键
java·ide·intellij-idea