springboot的pom.xml常用配置

73 阅读2分钟

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 项目中用于定义项目配置属性的标签,主要用于统一管理项目中的版本号、配置参数等关键信息。

主要功能

  1. 版本管理‌:通过 <properties> 定义依赖库的版本号,例如数据库连接池、日志框架等组件的版本,然后在 <dependencies> 中通过引用这些属性(如 ${druid.version})实现版本统一管理。 ‌12
  2. 配置参数管理‌:可定义编译参数(如 JDK 版本)、环境变量等,支持多环境配置(如开发、测试、生产环境)的动态切换。 ‌34
  3. 代码可维护性提升‌:通过集中定义版本号和配置参数,减少硬编码,提升代码扩展性和维护性。
  4. 常见properties:
    1. druid: 阿里巴巴Q开源数据库连接池,提供高性能数据库连接池,SQL监控,防SQL注入等功能
    2. pageHelper: mybatis简化分页的工具
    3. SLf4J: 抽象层,允许项目在运行时选择具体的实现日志
    4. Log4j: Apache经典日志框架,现已逐渐被Logback和log4j2取代
    5. Swagger: 自动生成API文档,支持在线测试接口
    6. Swagger-Bootstrap-Ul: 为Swagger提供更美观易用的界面
    7. Aspectj: java的Aop实现,支持编译时织入和运行时织入,用于实现日志,事务等横切关注点
    8. FastJSON: 高性能JSON解析,生成库
    9. JSON-lib: 比较I日的JSON库,现已较少使用,Jackson或Gson更高级
    10. Java-JWT: 用于生成和验证JWT令牌,用于身份认证和授权
    11. Commons HttpClient: Apache早期的HTTP客户端(过时,推荐HttpComponents或OkHttp)
    12. JasperReports: 强大的报表生成工具,支持PDF,Excel,HTML等多种格式输出