springboot的pom.xml常用配置
<!--引入父工程-->
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.5.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<spring-boot-dependencies.version>3.1.3</spring-boot-dependencies.version>
<spring-cloud-alibaba-dependencies.version>2022.0.0.0</spring-cloud-alibaba-dependencies.version>
<spring-cloud-dependencies.version>2022.0.4</spring-cloud-dependencies.version>
<lombok.version>1.18.22</lombok.version>
<cola.components.version>4.3.2</cola.components.version>
<httpclient.version>4.5.13</httpclient.version>
<servlet-api.version>4.0.1</servlet-api.version>
<snakeyaml.version>2.1</snakeyaml.version>
<mysql.version>8.0.32</mysql.version>
<sa-token.version>1.36.0</sa-token.version>
<dubbo-starter>3.2.5</dubbo-starter>
<dubbo.version>3.2.5</dubbo.version>
<javassist.version>3.28.0-GA</javassist.version>
<nacos-client.version>2.2.4</nacos-client.version>
<druid-starter>1.2.18</druid-starter>
<hibernate-validator.version>6.2.0.Final</hibernate-validator.version>
<userAgent.version>1.21</userAgent.version>
<commons-configuration2.version>2.9.0</commons-configuration2.version>
<hutool.version>5.8.22</hutool.version>
<transmittable.version>2.14.2</transmittable.version>
<mapstruct-processor.version>1.5.5.Final</mapstruct-processor.version>
<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
</properties>
<dependencies>
<!-- 引入web启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 引入 lombok, 版本在 spring-boot-dependencies-2.5.3.pom 指定了-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 引入 yaml 文件提示, 可以看到 JavaBean 字段提示 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<!-- 防止将此依赖传递到其他模块-->
<optional>true</optional>
</dependency>
<!-- 引入支持返回 xml 数据格式 -->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<!-- 引入thymeleaf-starter:会进行默认配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 进行数据库开发,引入 data-jdbc starter-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<!--
1. 引入操作 mysql 的驱动
2. 这个驱动版本要和你实际操作的 mysql 版本对应
3. 我们 spring-boot mysql 区别仲裁版本是<mysql.version>8.0.26</mysql.version>
,我们安装的是 mysql5 ,因此重新指定 mysql 驱动版本
4. 这个 mysql 驱动版本也可以在 pom.xml properties 指定
<properties>
<mysql.version>5.1.49</mysql.version>
</properties>
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<!-- 开发springboot测试类,需要引入 test start-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--Druid: 性能优秀,Druid 提供性能卓越的连接池功能外,还集成了 SQL 监控,黑名单拦截等功能,强大的监控特性,通过 Druid 提供的监控功能,可以清楚知道连接池和 SQL 的工作情况,-->
<!-- 引入druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.18</version>
</dependency>
</dependencies>
<properties> 是 Maven 项目中用于定义项目配置属性的标签,主要用于统一管理项目中的版本号、配置参数等关键信息。
主要功能
- 版本管理:通过
<properties>定义依赖库的版本号,例如数据库连接池、日志框架等组件的版本,然后在<dependencies>中通过引用这些属性(如${druid.version})实现版本统一管理。 12 - 配置参数管理:可定义编译参数(如 JDK 版本)、环境变量等,支持多环境配置(如开发、测试、生产环境)的动态切换。 34
- 代码可维护性提升:通过集中定义版本号和配置参数,减少硬编码,提升代码扩展性和维护性。
- 常见properties:
- druid: 阿里巴巴Q开源数据库连接池,提供高性能数据库连接池,SQL监控,防SQL注入等功能
- pageHelper: mybatis简化分页的工具
- SLf4J: 抽象层,允许项目在运行时选择具体的实现日志
- Log4j: Apache经典日志框架,现已逐渐被Logback和log4j2取代
- Swagger: 自动生成API文档,支持在线测试接口
- Swagger-Bootstrap-Ul: 为Swagger提供更美观易用的界面
- Aspectj: java的Aop实现,支持编译时织入和运行时织入,用于实现日志,事务等横切关注点
- FastJSON: 高性能JSON解析,生成库
- JSON-lib: 比较I日的JSON库,现已较少使用,Jackson或Gson更高级
- Java-JWT: 用于生成和验证JWT令牌,用于身份认证和授权
- Commons HttpClient: Apache早期的HTTP客户端(过时,推荐HttpComponents或OkHttp)
- JasperReports: 强大的报表生成工具,支持PDF,Excel,HTML等多种格式输出