依赖篇

253 阅读3分钟

本篇主要就是 POM.XML 文件配置详解

POM(Project Object Model).xml 是 Maven 项目的核心配置文件,采用 XML 格式编写。它定义了项目的基本信息、构建配置、依赖关系等几乎所有项目相关的设置。下面我将从多个维度为您详细解析其作用:

一、基础项目信息管理

  1. 项目坐标‌(唯一标识)

com.example

demo-project

1.0.0

jar <!-- 打包类型(jar/war/pom等) -

二、依赖管理机制

  1. 依赖声明

    现有的依赖说明: ``

<!--aop实现-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>
在Spring Boot项目中,`spring-boot-starter-aop`依赖用于支持面向切面编程(AOP)功能,以下是相关要点:
1.  ‌版本管理机制
    该依赖无需显式指定版本号,因为Spring Boot通过`spring-boot-dependencies`的BOM(Bill of Materials)统一管理版本。其父级依赖链为:
    spring-boot-starter-parent → spring-boot-dependencies
1.  ‌核心作用
    引入后自动包含AOP核心库(如`spring-aop`和`aspectjweaver`),支持以下功能:

    -   声明式事务管理
    -   日志切面
    -   权限控制等横切关注点实现15

1.  ‌典型配置示例
    在`pom.xml`中只需声明基础配置:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>


    实际版本由父POM的`<version>2.2.9.RELEASE</version>`(示例版本)自动继承12。

1.  ‌扩展建议 
    如需自定义AOP行为,可通过`@EnableAspectJAutoProxy`注解或`application.properties`配置代理模式。
    

<!-- JWT依赖-->
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>

```js
``
`io.jsonwebtoken:jjwt:0.9.1` 是一个用于处理 JSON Web Token (JWT) 的 Java 库,主要作用包括:

### 一、核心功能

1.  ‌**JWT 生成与签名**‌  
    通过 `Jwts.builder()` 构建 JWT,支持 HS256/HS512 等签名算法,生成包含头部、载荷和签名的加密字符串26。
1.  ‌**JWT 解析验证**‌  
    提供 `Jwts.parser()` 解析令牌,自动验证签名有效性并提取载荷中的声明(claims)28。
1.  ‌**声明(Claims)管理**‌  
    支持自定义键值对存储用户信息(如用户ID、角色),并通过标准字段(如 `sub`、`exp`)设置主题和过期时间67。

### 二、典型应用场景

-   ‌**身份认证**‌:在登录成功后生成 JWT 返回客户端,后续请求通过令牌验证身份35。
-   ‌**微服务安全通信**‌:服务间通过 JWT 传递可信信息,避免重复鉴权7。
-   ‌**无状态会话**‌:替代传统 Session,降低服务器存储压力8。

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.4.11</version>
</dependency>
作用:我觉得就是打日志的
<!-- 分页插件PageHelper -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.7</version>
</dependency>
这是 PageHelper 分页插件的 Spring Boot 启动器,
版本为 1.4.7。PageHelper 可以方便地在 MyBatis 中实现分页查询功能。
PageHelper.startPage(表信息总行数,每页行信息数);
可以通过这个方法来快捷实现页面分层
Ps:好用,极大的方便了分页查询的操作
  方法调用在后续文章中有
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.19</version>
</dependency>
阿里巴巴德鲁伊连接池,目前性能最好,
要是没有声明,默认使用spring的追光者连接池
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.3.0</version>
</dependency>

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.17.4</version>
</dependency>
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
  1. 依赖作用域

    • compile:默认范围,参与所有阶段
    • provided:JDK或容器已提供,如servlet-api
    • runtime:运行时需要,如JDBC驱动
    • test:仅测试阶段使用
    • system:本地系统路径依赖

三、构建生命周期控制

  1. 默认生命周期阶段

    • validate → compile → test → package → verify → install → deploy

实际应用价值

  1. 标准化构建‌:统一项目结构和构建流程
  2. 依赖自动化‌:自动下载和管理依赖库
  3. 团队协作‌:确保开发环境一致性
  4. 持续集成‌:与CI/CD工具无缝集成
  5. 可复用性‌:通过继承和聚合实现配置复用

POM.xml 的强大之处在于它通过声明式配置而非命令式脚本,实现了项目构建的标准化和自动化,极大提高了Java项目的开发效率和管理便利性。