本篇主要就是 POM.XML 文件配置详解
POM(Project Object Model).xml 是 Maven 项目的核心配置文件,采用 XML 格式编写。它定义了项目的基本信息、构建配置、依赖关系等几乎所有项目相关的设置。下面我将从多个维度为您详细解析其作用:
一、基础项目信息管理
- 项目坐标(唯一标识)
com.example
demo-project
1.0.0
jar <!-- 打包类型(jar/war/pom等) -
二、依赖管理机制
-
依赖声明
现有的依赖说明: ``
<!--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>
-
依赖作用域
compile:默认范围,参与所有阶段provided:JDK或容器已提供,如servlet-apiruntime:运行时需要,如JDBC驱动test:仅测试阶段使用system:本地系统路径依赖
三、构建生命周期控制
-
默认生命周期阶段
validate→compile→test→package→verify→install→deploy
实际应用价值
- 标准化构建:统一项目结构和构建流程
- 依赖自动化:自动下载和管理依赖库
- 团队协作:确保开发环境一致性
- 持续集成:与CI/CD工具无缝集成
- 可复用性:通过继承和聚合实现配置复用
POM.xml 的强大之处在于它通过声明式配置而非命令式脚本,实现了项目构建的标准化和自动化,极大提高了Java项目的开发效率和管理便利性。