|
|
|
@ -1,105 +1,157 @@
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<!-- 这是 Maven 项目配置文件(pom.xml)的根元素,声明了 XML 文档的版本和编码格式,
|
|
|
|
|
同时通过 xmlns 属性定义了一系列 XML 命名空间相关的配置,用于遵循 Maven 项目对象模型(POM)的规范 -->
|
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
|
|
|
<!-- 定义了 Maven 项目对象模型的版本,这里使用的是 4.0.0 版本,它规定了整个 pom.xml 文件的基本结构和语法规则 -->
|
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
|
<!-- 配置项目的父级依赖,通过指定 groupId、artifactId 和 version,继承了父项目的一些配置信息,
|
|
|
|
|
比如依赖管理、插件配置等,使得当前项目可以复用父项目已有的配置,减少重复配置工作,保持项目结构的一致性 -->
|
|
|
|
|
<parent>
|
|
|
|
|
<groupId>com.njupt.swg</groupId>
|
|
|
|
|
<artifactId>spring-cloud-for-snailmall</artifactId>
|
|
|
|
|
<version>0.0.1-SNAPSHOT</version>
|
|
|
|
|
</parent>
|
|
|
|
|
<!-- 当前项目的 artifactId,用于唯一标识项目在 Maven 仓库中的名称,通常与项目的实际名称相关,
|
|
|
|
|
这里表示该项目是名为 snailmall-user-service 的模块 -->
|
|
|
|
|
<artifactId>snailmall-user-service</artifactId>
|
|
|
|
|
<!-- 当前项目的版本号,同样采用了 0.0.1-SNAPSHOT 这个快照版本,SNAPSHOT 表示这是一个开发过程中的不稳定版本,
|
|
|
|
|
常用于项目开发阶段,后续随着项目的迭代会更新为正式的发布版本号 -->
|
|
|
|
|
<version>0.0.1-SNAPSHOT</version>
|
|
|
|
|
<!-- 项目的显示名称,方便在 Maven 相关的工具或者项目管理中直观地识别该项目 -->
|
|
|
|
|
<name>snailmall-user-service</name>
|
|
|
|
|
<!-- 项目的简要描述,用于说明项目的大致用途或者功能,这里描述为用于 Spring Boot 的示例项目 -->
|
|
|
|
|
<description>Demo project for Spring Boot</description>
|
|
|
|
|
|
|
|
|
|
<!-- 项目依赖配置部分,在这里列出了项目运行所需要依赖的各种外部库、框架等资源 -->
|
|
|
|
|
<dependencies>
|
|
|
|
|
<!--spring cloud相关-->
|
|
|
|
|
<!-- spring cloud 相关 -->
|
|
|
|
|
<!-- 引入 Spring Boot 的 web 启动器依赖,它会自动引入一系列构建 Web 应用所需要的基础依赖,
|
|
|
|
|
比如 Spring MVC、内置的 Tomcat 服务器等,方便开发基于 Spring Boot 的 Web 服务 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.springframework.boot</groupId>
|
|
|
|
|
<artifactId>spring-boot-starter-web</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Spring Cloud 配置客户端依赖,用于让当前项目能够作为客户端从配置中心(如 Spring Cloud Config Server)获取配置信息,
|
|
|
|
|
实现配置的集中管理和动态更新,提高配置的灵活性和可维护性 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.springframework.cloud</groupId>
|
|
|
|
|
<artifactId>spring-cloud-config-client</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Spring Cloud 的 Eureka 客户端依赖,使得项目可以将自身注册到 Eureka 服务注册中心,
|
|
|
|
|
同时也能从 Eureka 发现其他已注册的服务,是实现微服务架构中服务发现和注册功能的关键依赖 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.springframework.cloud</groupId>
|
|
|
|
|
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Spring Cloud Bus 的 AMQP(高级消息队列协议)依赖,Spring Cloud Bus 可以借助消息队列(如 RabbitMQ、Kafka 等)实现微服务之间的事件传播,
|
|
|
|
|
常用于配置的动态刷新等场景,通过 AMQP 协议进行消息传递,增强了微服务之间的交互能力 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.springframework.cloud</groupId>
|
|
|
|
|
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Spring Cloud Zipkin 依赖,Zipkin 用于分布式链路追踪,通过在项目中集成该依赖,
|
|
|
|
|
可以将应用的请求链路信息发送到 Zipkin 服务端进行收集和分析,方便排查微服务架构下的性能问题、故障定位等 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.springframework.cloud</groupId>
|
|
|
|
|
<artifactId>spring-cloud-starter-zipkin</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Spring Boot 的 Actuator 依赖,Actuator 提供了一系列用于监控和管理 Spring Boot 应用的端点,
|
|
|
|
|
比如查看应用的健康状态、获取运行时的各种指标信息、进行一些配置的动态调整等功能,方便对应用进行运维管理 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.springframework.boot</groupId>
|
|
|
|
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Lombok 依赖,Lombok 是一个通过注解来简化 Java 代码编写的工具,
|
|
|
|
|
例如可以通过注解自动生成构造函数、Getter/Setter 方法、toString 方法等,减少了大量的样板代码,提高代码的简洁性 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.projectlombok</groupId>
|
|
|
|
|
<artifactId>lombok</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!--jackson-->
|
|
|
|
|
<!-- jackson -->
|
|
|
|
|
<!-- 引入 Jackson 的 mapper 依赖,Jackson 是一个常用的 JSON 处理库,用于在 Java 对象和 JSON 格式数据之间进行序列化和反序列化操作,
|
|
|
|
|
比如将 Java 对象转换为 JSON 字符串发送给前端,或者将接收到的 JSON 数据解析为 Java 对象,在 Web 开发中经常会用到 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.codehaus.jackson</groupId>
|
|
|
|
|
<artifactId>jackson-mapper-asl</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!--druid-->
|
|
|
|
|
<!-- druid -->
|
|
|
|
|
<!-- 引入阿里巴巴的 Druid 依赖,Druid 是一款性能优秀的数据库连接池,除了基本的连接管理功能外,
|
|
|
|
|
还提供了丰富的监控、统计、扩展等功能,能够更好地管理数据库连接,提升数据库访问的效率和稳定性 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>com.alibaba</groupId>
|
|
|
|
|
<artifactId>druid</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!--util-->
|
|
|
|
|
<!-- util -->
|
|
|
|
|
<!-- 引入 Google 的 Guava 依赖,Guava 是一个包含了很多实用工具类和集合扩展的库,
|
|
|
|
|
例如提供了更方便的字符串处理、集合操作、缓存机制等功能,可以提高 Java 开发的效率,减少重复造轮子 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>com.google.guava</groupId>
|
|
|
|
|
<artifactId>guava</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Apache Commons Lang3 依赖,它提供了大量对 Java 基本类型、字符串、数组等操作的实用工具方法,
|
|
|
|
|
比如字符串的判空、格式化,数组的拷贝、填充等功能,补充了 Java 标准库中一些功能的不足,方便日常开发 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.apache.commons</groupId>
|
|
|
|
|
<artifactId>commons-lang3</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Commons Collections 依赖,它提供了一系列扩展的集合类和集合相关的工具方法,
|
|
|
|
|
比如各种特殊的集合实现(如不可变集合、多值映射等)以及对集合进行操作的便捷方法,丰富了 Java 集合框架的功能 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>commons-collections</groupId>
|
|
|
|
|
<artifactId>commons-collections</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!--MYSQL-->
|
|
|
|
|
<!-- MYSQL -->
|
|
|
|
|
<!-- 引入 MySQL 的 JDBC 驱动依赖,用于在 Java 项目中建立与 MySQL 数据库的连接,使得项目能够通过 JDBC 规范与 MySQL 数据库进行交互,
|
|
|
|
|
执行 SQL 语句,实现数据的持久化操作,如查询、插入、更新和删除数据等 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>mysql</groupId>
|
|
|
|
|
<artifactId>mysql-connector-java</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!--mybatis-->
|
|
|
|
|
<!-- mybatis -->
|
|
|
|
|
<!-- 引入 MyBatis 与 Spring Boot 集成的启动器依赖,MyBatis 是一个优秀的持久层框架,
|
|
|
|
|
通过这个启动器可以方便地在 Spring Boot 项目中使用 MyBatis 进行数据库访问操作,结合 XML 配置文件或者注解来编写 SQL 语句,实现数据持久化 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.mybatis.spring.boot</groupId>
|
|
|
|
|
<artifactId>mybatis-spring-boot-starter</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!--jedis-->
|
|
|
|
|
<!-- jedis -->
|
|
|
|
|
<!-- 引入 Jedis 依赖,Jedis 是 Redis 的 Java 客户端库,用于在 Java 项目中与 Redis 缓存数据库进行交互,
|
|
|
|
|
比如向 Redis 中存储数据、获取数据、执行 Redis 支持的各种命令等,实现缓存功能或者其他基于 Redis 的业务逻辑 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>redis.clients</groupId>
|
|
|
|
|
<artifactId>jedis</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!--joda time-->
|
|
|
|
|
<!-- joda time -->
|
|
|
|
|
<!-- 引入 Joda-Time 依赖,Joda-Time 是一个处理日期和时间的强大库,提供了比 Java 标准库中更方便、灵活的日期时间操作方法,
|
|
|
|
|
例如日期的格式化、解析、计算时间间隔等功能,在涉及到复杂的日期时间处理业务场景中很实用 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>joda-time</groupId>
|
|
|
|
|
<artifactId>joda-time</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
|
|
|
|
|
<!--curator-->
|
|
|
|
|
<!-- curator -->
|
|
|
|
|
<!-- 引入 Curator 框架的核心依赖,Curator 是用于简化与 Zookeeper 交互的 Java 库,
|
|
|
|
|
在分布式系统中,Zookeeper 常用于服务注册与发现、分布式锁、配置管理等场景,Curator 提供了更高级、易用的 API 来操作 Zookeeper -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.apache.curator</groupId>
|
|
|
|
|
<artifactId>curator-framework</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Curator 框架的recipes(常用操作配方)依赖,它基于 Curator 框架的核心功能,提供了一些更常用、便捷的分布式应用开发中涉及到 Zookeeper 的操作实现,
|
|
|
|
|
比如分布式锁、分布式计数器等功能的具体实现,方便开发者快速构建分布式相关的业务逻辑 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>org.apache.curator</groupId>
|
|
|
|
|
<artifactId>curator-recipes</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
|
|
|
|
|
<!-- 引入 Springfox Swagger2 依赖,用于在项目中集成 Swagger2 API 文档生成工具,
|
|
|
|
|
通过在代码中添加相关注解,Swagger2 可以自动生成美观、详细且易于交互的 API 文档,方便前后端开发人员进行接口对接、测试以及 API 的使用说明 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>io.springfox</groupId>
|
|
|
|
|
<artifactId>springfox-swagger2</artifactId>
|
|
|
|
|
</dependency>
|
|
|
|
|
<!-- 引入 Springfox Swagger UI 依赖,它提供了一个可视化的界面,基于 Swagger2 生成的 API 文档数据,
|
|
|
|
|
可以在浏览器中方便地查看和交互 API 接口信息,更直观地展示 API 的请求参数、返回结果等内容 -->
|
|
|
|
|
<dependency>
|
|
|
|
|
<groupId>io.springfox</groupId>
|
|
|
|
|
<artifactId>springfox-swagger-ui</artifactId>
|
|
|
|
@ -107,8 +159,11 @@
|
|
|
|
|
|
|
|
|
|
</dependencies>
|
|
|
|
|
|
|
|
|
|
<!-- 项目构建相关配置部分,用于指定项目在构建过程中的一些设置,比如资源文件的处理、插件的使用等 -->
|
|
|
|
|
<build>
|
|
|
|
|
<!--编译xml文件-->
|
|
|
|
|
<!-- 编译 xml 文件 -->
|
|
|
|
|
<!-- 配置项目的资源文件,这里指定了在编译项目时,会将 src/main/java 目录下的所有 xml 文件也作为资源文件进行处理,
|
|
|
|
|
通常这些 xml 文件可能是 MyBatis 的 Mapper 配置文件等,确保它们在构建过程中能被正确打包和使用 -->
|
|
|
|
|
<resources>
|
|
|
|
|
<resource>
|
|
|
|
|
<directory>src/main/java</directory>
|
|
|
|
@ -118,6 +173,9 @@
|
|
|
|
|
</resource>
|
|
|
|
|
</resources>
|
|
|
|
|
<plugins>
|
|
|
|
|
<!-- 引入 Spring Boot 的 Maven 插件,这个插件在项目构建过程中有很多重要作用,
|
|
|
|
|
比如可以将项目打包成可执行的 JAR 文件,并且在 JAR 文件中嵌入了应用运行所需的依赖、配置信息等,
|
|
|
|
|
还能方便地启动 Spring Boot 应用进行本地测试等 -->
|
|
|
|
|
<plugin>
|
|
|
|
|
<groupId>org.springframework.boot</groupId>
|
|
|
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
|
|
@ -125,4 +183,4 @@
|
|
|
|
|
</plugins>
|
|
|
|
|
</build>
|
|
|
|
|
|
|
|
|
|
</project>
|
|
|
|
|
</project>
|