1. 订单服务的核心业务场景 订单服务的主要职责是:管理用户的购票订单。它的核心业务逻辑可以分为以下几个典型场景: 1.1 创建订单(购票) 用户在前端选择好车次、座位、乘客信息后,点击“下单”。 前端调用 order-service 的“创建订单”接口。 order-service 会做以下几步: 校验用户身份(通常通过 token)。 校验车票…
1. 基础接口和抽象概念 Cache.java - 缓存基本接口,了解缓存的基本操作 DistributedCache.java - 分布式缓存接口,扩展了基本缓存接口 MultistageCache.java - 多级缓存接口 2. 核心设计模式和组件 core包下的组件: CacheLoader.java…
BeanUtil 工具类解析 BeanUtil 是12306项目中的一个重要工具类,位于 frameworks/common 模块中,主要用于对象属性的复制和转换操作。这个类封装了对象间属性映射的常见操作,使代码更简洁、可读性更强。 底层依赖: 使用Dozer框架(DozerBeanMapperBuilder…
1. 环境搭建 首先需要搭建开发环境: 安装JDK 17 安装Maven 安装IDE(如IntelliJ IDEA) 安装必要的中间件: MySQL Redis RocketMQ 2. 项目结构熟悉 先通过阅读README.md和项目结构了解整体架构: 了解微服务划分(用户、票务、订单、支付等) 了解技术栈组成 3. 学习路径 第一阶段:基础框架学…
HashMap原理 HashMap底层是数组+链表+红黑树的结构 创建对象时,将加载因子初始化0.75 向HashMap添加一个元素时,通过key的哈希值运算得到一个table表的索引 检查索引处是否有索引, 没有索引直接添加索引 有索引判断该位置和要加入的位置的key的内容是否相同、 相同的话替换该索引 不同的话判断树结构还是链表结构,做出相应处…
有效的数独 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3&nbs…