Sprint 0:MiniShop 初始化

发布时间:2026/7/3 10:43:44
Sprint 0:MiniShop 初始化 目标必须达成你这一阶段要完成 5 件事创建 Maven 多模块工程设计分层架构符合 SpringBoot 企业规范初始化 Git Flow定义统一返回体 异常体系建立基础依赖MySQL / Redis / MyBatis / Web一、项目结构设计非常关键我们采用标准互联网公司结构minishop│├── minishop-common // 公共模块工具类/返回体/异常├── minishop-user // 用户服务├── minishop-product // 商品服务├── minishop-order // 订单服务├── minishop-payment // 支付服务│├── minishop-gateway // 后续扩展API网关│└── pom.xml父工程每个模块职责必须理解1. common核心基础模块放所有“系统级能力”统一返回体全局异常工具类常量枚举DTO基础结构 所有模块依赖它-------------------------------------------------------------------------------------------------------------------------2. user-service登录用户信息地址管理-------------------------------------------------------------------------------------------------------------------------3. product-service商品SKU分类库存查询-------------------------------------------------------------------------------------------------------------------------4. order-service下单订单状态流转订单查询-------------------------------------------------------------------------------------------------------------------------5. payment-service支付模拟支付状态回调超时关闭订单-------------------------------------------------------------------------------------------------------------------------二、创建 Maven 父工程Parent Project⚠️ 父工程没有src!-- Parent Project 不打包所以设为pom。 因为父工程不负责业务代码也不会生成可执行 Jar它的职责是统一管理模块、依赖版本和构建配置 因此需要使用pom打包类型。Maven 会将它作为聚合工程Aggregator和父工程Parent使用而不是一个可执行应用。 打包就是jarMaven就会任务这是一个java程序会去找src--1. 创建 pom.xml核心配置文件声明依赖Maven →pom.xmlProject Object Modelpip →requirements.txt/pyproject.tomlMaven 管理的是jar/war 等字节码包编译后使用pip 管理的是Python 源码包或 wheel 包解释执行?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion !--POM 模型版本。-- !--等价于import minishop-- groupIdcom.minishop/groupId !--工程名字-- artifactIdminishop/artifactId !--项目版本-- version1.0.0/version !-- Parent Project 不打包所以设为pom。 因为父工程不负责业务代码也不会生成可执行 Jar它的职责是统一管理模块、依赖版本和构建配置 因此需要使用 pom 打包类型。Maven 会将它作为聚合工程Aggregator和父工程Parent使用而不是一个可执行应用。 打包就是jarMaven就会任务这是一个java程序会去找src-- packagingpom/packaging modules moduleminishop-common/module /modules properties maven.compiler.source21/maven.compiler.source maven.compiler.target21/maven.compiler.target project.build.sourceEncodingUTF-8/project.build.sourceEncoding /properties /project1.1、Parent、Aggregator、Module 到底是什么实际上一个pom.xml可能同时承担两种角色① Parent父工程② Aggregator聚合工程③ Module业务模块① Parent父工程——统一给子模块提供配置如下那么所有的子模块都将继承java.version17/java.versionspring.boot.version3.5.0/spring.boot.version不需要每个模块都写一遍properties java.version17/java.version spring.boot.version3.5.0/spring.boot.version /properties② Aggregator聚合工程——告诉Maven我的项目由哪些Module组成。例如以后执行mvn clean install Maven不只编译 minishop还按顺序编译子模块modules moduleminishop-common/module moduleminishop-user/module moduleminishop-order/module /modules③ Module业务模块——即上述子模块业务模块中一般才有src、controller、service、mapper总结Parent——》管理配置Aggregator——》管理模块Module——》真正写业务1.2 Spring Boot Parent没有 Spring Boot Parent你需要自己管理Spring 版本Jackson 版本Logback 版本MyBatis 版本兼容性有 Spring Boot Parent你只需要写spring-boot-starter-web其他全部自动匹配。!-- Spring Boot Parent -- parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version3.3.5/version relativePath/ /parent