Maven核心配置文件pom.xml使用及说明

 更新时间:2026年03月12日 09:35:05   作者:‍小林同学学JAVA  
本文详细介绍了Spring Boot项目创建步骤,包括创建父工程和子模块工程,并解释了Maven的基本概念、用途、配置文件结构以及如何使用`pom.xml`文件进行依赖管理、构建配置和项目模块化

创建项目的步骤

可以直接用Springboot项目来创建:因为会生成一些所需的文件。不需要的文件可以删除。

创建后的效果

创建过程

  • 1、先创建health_parent父工程,package指定为POM
  • 2、配置maven工程路径

  • 3、配置项目的 JDK版本

  • 4、创建其他子模块工程

Maven

定义

Maven 是一个强大的项目管理和构建自动化工具(插件),广泛用于 Java 项目的构建、依赖管理和项目报告。

Maven 工程有约定的目录结构约定的目录结构对于 Maven 实现自动化构建而言是必不可少的一环,就拿自动编译来说,Maven 必须 能找到 Java 源文件,下一步才能编译,而编译之后也必须有一个准确的位置保持编译得到的字节码文件。

用途

以下是 Maven 的一些主要用途:

项目构建(自动化构建)

Maven 提供了标准的构建生命周期,包括编译、测试、打包、部署等。

这些生命周期都提供相应的插件。

依赖管理(依赖范围、依赖传递)

  • 依赖管理:自动下载和管理项目所需的第三方库(依赖)
  • 依赖范围Maven 支持定义依赖的范围(如 compile、test、provided 等),从而控制依赖在不同构建阶段的使用。
  • 依赖传递Maven 支持依赖的传递性,即如果项目 A 依赖于项目 B,项目 B 依赖于项目 C,那么项目 A 也会自动依赖于项目 C。

项目管理(支持多模块)

Maven 支持多模块项目,通过父 POM 和子模块的结构,可以方便地管理大型项目的各个子模块。

发布管理(打好的包发布)

  • 发布到仓库Maven 可以将构建好的包发布到本地或远程 Maven 仓库,方便其他项目引用。

  • 发布插件:Maven 提供了发布插件,可以自动化发布过程,例如生成发布版本、发布到 Maven 中央仓库等。

继承(pom)和聚合(module)

继承:子工程可以用到父工程的东西。

在父工程中统一管理项目中的依赖信息,具体来说是管理依赖信息的版本。

父工程创建好之后,要修改它的打包方式:

<!-- 当前工程作为父工程,它要去管理子工程,所以打包方式必须是 pom -->
<packaging>pom</packaging>

只有打包方式为 pom 的 Maven 工程能够管理其他 Maven 工程。打包方式为 pom 的 Maven 工程中不写业务代码,它是专门管理其他 Maven 工程的工程,所以可以将生成的 src 目录删除。

聚合:使用一个总工程将各个模块工程汇集起来,作为一个整体对应完整的项目,实际就是 module 标签。

什么是pom.xml

pom.xml是Maven项目的核心配置文件,它是 项目对象模型 - Project Object Model(POM)的缩写。

它使用 XML 格式定义了项目的基本信息、依赖项、构建插件和任务等。使用pom.xml,我们可以轻松地管理项目的构建和依赖关系,让我们能够更专注于业务逻辑的开发。

pom.xml文件结构

pom.xml 文件通常的结构如下所示,主要用于定义 Maven 项目的配置信息和构建过程中所需的各种依赖和插件:

<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">
    <!-- 项目基本信息 -->
    <modelVersion>4.0.0</modelVersion>
    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <version>...</version>
    <packaging>...</packaging>

    <!-- 项目依赖 -->
    <dependencies>
        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <version>...</version>
            <scope>...</scope>
        </dependency>
        <!-- 可以有多个依赖项 -->
    </dependencies>

    <!-- 构建配置 -->
    <build>
        <sourceDirectory>src/main/java</sourceDirectory>
        <testSourceDirectory>src/test/java</testSourceDirectory>
        <plugins>
            <plugin>
                <groupId>...</groupId>
                <artifactId>...</artifactId>
                <version>...</version>
                <!-- 插件配置 -->
            </plugin>
            <!-- 可以有多个插件 -->
        </plugins>
    </build>

    <!-- 仓库配置 -->
    <repositories>
        <repository>
            <id>...</id>
            <url>...</url>
        </repository>
        <!-- 可以有多个仓库 -->
    </repositories>
</project>

详细解释

  • <modelVersion>: 目前是 4.0.0。( POM 模型的版本)
  • <groupId>: 项目组织或公司的唯一标识符。(可以自定义com.xxx)
  • <artifactId>: 项目的唯一标识符,(通常是项目名称)
  • <version>: 项目的当前版本号。
  • <scope>:指定依赖项在项目中的使用范围。
  • <packaging>: 例如 jar、war 等。(项目的打包方式)
  • <dependencies>: 项目依赖的外部库或模块。
<dependency>
    <groupId>com.sky</groupId>
    <artifactId>sky-common</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
  • <build>: Maven 构建过程的配置信息,包括源码目录、测试目录和插件配置。
  • <plugins>: 在构建过程中使用的 Maven 插件。
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
  • <repositories>: Maven 从中获取依赖项和插件的仓库列表。

dependency

与项目的依赖列表相关的标签最外层由 <dependencies>来囊括,内部包含了各种具体的依赖

  • <dependency>,该标签用于指定一个依赖项,它包含以下几个子标签
  • <groupId>:指定依赖项的groupId,项目的组名
  • <artifactId>:指定依赖项的artifactId,项目的唯一标识符
  • <version>:指定依赖项的版本号。
  • <scope>:指定依赖项在项目中的使用范围。

其中的 <scope>一般包含以下几种范围:常用的有compile、test、provided 和 runtime

  • compile:依赖库默认的 scope,表示该依赖库在编译、测试、运行时均需要使用。
  • provided:表示该依赖库只在编译和测试时需要使用,而在运行时已经被系统或者容器提供,所以不需要打包到最终的应用程序中。
  • runtime:表示该依赖库只在运行时需要使用,而在编译和测试时则不需要。
  • test:表示该依赖库只在测试时需要使用,而在编译和运行时则不需要。

repository

当然,我们还能在pom文件中支持指定Maven仓库,即使用 <repositories> 和 <repository>标签,

<repository>用于指定一个Maven仓库,它包含以下几个子标签:

  • <id>:指定Maven仓库的ID。
  • <name>:指定Maven仓库的名称。
  • <url>:指定Maven仓库的URL

properties

properties 严格来说,并不一定是项目本身的信息,而是人为设置的属性或者说宏,这个标签用来定义和管理项目中所需要的属性,其作用有以下几个:

  • 统一管理项目中的常用属性,比如版本号、路径、插件版本等,方便统一修改和管理。
  • 可以在配置过程中使用 ${…}占位符引用这些属性,使得配置更加灵活和便捷。
  • 避免硬编码,提高代码的可维护性和可读性

比如说我们可以这么配

<properties>
    <project.name>demo-project</project.name>
    <project.version>1.0.0</project.version>
    <jdk.version>1.8</jdk.version>
</properties>
....省略其余部分
<dependency>
    <groupId>com.example.demo</groupId>
    <artifactId>${project.name}-api</artifactId>
    <version>${project.version}</version>
</dependency>

parent

在 Maven 的 pom.xml 文件中,<parent> 元素是用来指定当前项目继承的父项目(Parent Project)的配置信息。这种配置方式被称为 “继承” 或者 “继承机制”,允许子项目继承父项目的配置,从而简化项目的管理和维护。

<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">
    <!-- 项目基本信息 -->
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example.myproject</groupId>
    <artifactId>myproject-core</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <!-- 继承自父项目 -->
    <parent>
        <groupId>com.example</groupId>
        <artifactId>parent-project</artifactId>
        <version>1.0.0</version>
    </parent>

    <!-- 其他配置 -->
    <dependencies>
        <!-- 项目依赖 -->
    </dependencies>

    <build>
        <!-- 构建配置 -->
    </build>

    <repositories>
        <!-- 仓库配置 -->
    </repositories>
</project>

在这个例子中:

  • <parent> 元素中的 <groupId><artifactId> 和 <version> 指定了父项目的坐标信息。
  • 当前项目(myproject-core)继承自 parent-project,因此会继承父项目中定义的基本配置,如版本管理、插件管理等。
  • 在 <dependencies><build> 和 <repositories> 等部分,可以定义当前项目自己的特定配置,这些配置会与父项目的配置合并或覆盖,以形成最终的项目配置。

通过使用 <parent> 元素,可以避免在子项目中重复定义相同的配置信息,提高项目的一致性和可维护性。

父工程的作用

以下是父工程的 pom.xml 文件的主要作用:

继承与共享配置

  • 继承属性:子模块通过 <parent> 标签指定父 POM,从而继承父 POM 中的所有属性、依赖、插件配置等。
  • 共享配置:父 POM 可以定义一些公共的配置,例如编译插件的版本、资源过滤规则等。这样,所有子模块都可以共享这些配置,减少了重复代码,提高了维护性。

统一管理依赖

  • 依赖版本管理:父 POM 文件通常会定义项目所使用的依赖库的版本号。子模块可以直接引用这些依赖,而不需要显式指定版本号。这样可以确保整个项目使用一致的依赖版本,避免版本冲突。
  • 依赖管理:通过 <dependencyManagement> 标签,父 POM 可以集中管理所有子模块的依赖。这意味着子模块只需要声明依赖的坐标(groupId 和 artifactId),而不需要指定版本。版本由父 POM 统一管理。

项目模块化和简化维护

  • 模块声明:父 POM 文件中可以声明项目的各个子模块。通过 <modules> 标签,父 POM 可以定义哪些子模块属于当前项目,这样 Maven 就可以在构建时按照模块依赖关系进行构建。
  • 集中管理:通过父 POM,项目的核心配置集中在父 POM 文件中,减少了子模块的配置复杂度。如果需要修改全局配置,只需修改父 POM 文件即可。

注意事项:拿到初始化代码可以通过编译父工程,查看子模块的代码是否能编译成功。如果能编译成功说明没问题,可以正常启动项目。

项目实际应用

父工程pom文件

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <!-- POM 模型版本。   -->
    <modelVersion>4.0.0</modelVersion>

    <!-- <parent>: 定义了当前项目的父项目。这意味着当前项目是一个 Spring Boot 项目   -->
    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.7.3</version>
    </parent>

    <!-- 项目基本信息   -->
    <groupId>com.sky</groupId>
    <artifactId>sky-take-out</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <!-- <modules>: 定义了当前项目的子模块。   -->
    <modules>
        <module>sky-common</module>
        <module>sky-pojo</module>
        <module>sky-server</module>
    </modules>

    <!-- <properties>: 定义了一些属性及其对应的值,这些属性可以在后续的配置中引用。   -->
    <!-- 后续可以通过 ${mybatis.spring} 引用这个值。   -->
    <properties>
        <mybatis.spring>2.2.0</mybatis.spring>
        <lombok>1.18.20</lombok>
        <fastjson>1.2.76</fastjson>
        <commons.lang>2.6</commons.lang>
        <druid>1.2.1</druid>
        <pagehelper>1.3.0</pagehelper>
        <aliyun.sdk.oss>3.10.2</aliyun.sdk.oss>
        <knife4j>3.0.2</knife4j>
        <aspectj>1.9.4</aspectj>
        <jjwt>0.9.1</jjwt>
        <jaxb-api>2.3.1</jaxb-api>
        <poi>3.16</poi>
    </properties>

    <!--  <dependencyManagement>: 定义了依赖管理的配置。这个部分不会直接引入依赖,而是声明了这些依赖的版本和作用范围。 -->
    <!--  子模块在引用这些依赖时,可以直接使用这些定义好的版本号,而不需要在每个子模块中单独指定。 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis.spring}</version>
            </dependency>

            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok}</version>
            </dependency>

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson}</version>
            </dependency>

            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${commons.lang}</version>
            </dependency>

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid}</version>
            </dependency>

            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>${pagehelper}</version>
            </dependency>

            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-spring-boot-starter</artifactId>
                <version>${knife4j}</version>
            </dependency>

            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>${aspectj}</version>
            </dependency>

            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj}</version>
            </dependency>

            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>${jjwt}</version>
            </dependency>

            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${aliyun.sdk.oss}</version>
            </dependency>

            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb-api}</version>
            </dependency>

            <!-- poi -->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>${poi}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>${poi}</version>
            </dependency>
            <!--微信支付-->
            <dependency>
                <groupId>com.github.wechatpay-apiv3</groupId>
                <artifactId>wechatpay-apache-httpclient</artifactId>
                <version>0.4.8</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

子工程pom文件

<?xml version="1.0" encoding="UTF-8"?>
<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">

    <!-- parent 元素定义了当前 Maven 项目的父项目。   -->
    <parent>
        <artifactId>sky-take-out</artifactId>
        <groupId>com.sky</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <!-- 项目基本信息   -->
    <modelVersion>4.0.0</modelVersion>
    <artifactId>sky-server</artifactId>


    <dependencies>
        <!--  引入sky-common模块   -->
        <dependency>
            <groupId>com.sky</groupId>
            <artifactId>sky-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--  引入sky-pojo模块  -->
        <dependency>
            <groupId>com.sky</groupId>
            <artifactId>sky-pojo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--  Spring Boot 的核心依赖,包含了 Spring 框架、日志、自动配置等功能。      -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <!--  Spring Boot 的测试依赖,用于编写单元测试和集成测试。      -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- Spring Boot 的 Web 依赖,用于构建 Web 应用,包含 Tomcat 和 Spring MVC。-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <scope>compile</scope>
        </dependency>

        <!-- MySQL 数据库驱动依赖,用于连接 MySQL 数据库。-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- MyBatis 框架的 Spring Boot 启动器,用于简化 MyBatis 的配置。-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>

        <!-- Lombok 库,通过注解消除 Java 代码中的样板代码(如 getter、setter、构造函数等)。-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!-- fastjson 阿里巴巴的 JSON 库,用于 JSON 序列化和反序列化。 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>

        <!-- 阿里巴巴的 Druid 数据库连接池的 Spring Boot 启动器。 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
        </dependency>

        <!-- MyBatis 的分页插件 PageHelper 的 Spring Boot 启动器。 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
        </dependency>

        <!-- aspectjrt 和 aspectjweaver:AspectJ 运行时库,用于支持 AOP(面向切面编程)。 -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>

        <!-- Knife4j 是一个基于 Swagger 的增强 UI 库,用于生成 API 文档。 -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
        </dependency>

        <!-- Spring Boot 的 Redis 依赖,用于操作 Redis 数据库。 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <!-- spring-boot-starter-cache:Spring Boot 的缓存依赖,支持多种缓存机制。 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>

        <!-- Spring Boot 的 WebSocket 依赖,用于构建实时通信应用。 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>

        <!-- jaxb-api:用于 Java 对象与 XML 之间的转换。 -->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
        </dependency>

        <!--poi 和 poi-ooxml:Apache POI 库,用于操作 Microsoft Office 文档(如 Excel)-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>
    </dependencies>

    <!-- build 元素定义了 Maven 项目的构建配置。-->
    <build>
        <plugins>
            <!-- spring-boot-maven-plugin:Spring Boot 的 Maven 插件,用于打包 Spring Boot 应用。 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>

    </build>

</project>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot整合(ES)ElasticSearch7.8实践

    SpringBoot整合(ES)ElasticSearch7.8实践

    本文详细介绍了SpringBoot整合ElasticSearch7.8的教程,涵盖依赖添加、客户端初始化、索引创建与获取、批量插入数据等核心步骤,结合官方文档指引及Lombok简化实体类配置,提供完整实践方案
    2025-07-07
  • MybatisGenerator文件生成不出对应文件的问题

    MybatisGenerator文件生成不出对应文件的问题

    本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成器的路径等,通过在项目结构中引入相应的jar包,并在GeneratorSqlmap.java文件中运行,可以成功生成对应的文件
    2025-01-01
  • SpringBoot 整合数据源的具体实践

    SpringBoot 整合数据源的具体实践

    本文主要介绍了SpringBoot 整合数据源的具体实践,利用 Spring Boot 的自动配置和简化的注解来简化数据源配置工作,从而更专注于应用程序的业务逻辑开发,感兴趣的可以了解一下
    2023-11-11
  • SpringBoot集成JPA持久层框架,简化数据库操作

    SpringBoot集成JPA持久层框架,简化数据库操作

    JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范。主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营的局面。JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。
    2021-06-06
  • Java实现企业发放的奖金根据利润提成问题

    Java实现企业发放的奖金根据利润提成问题

    这篇文章主要介绍了请利用数轴来分界,定位。注意定义时需把奖金定义成长整型,需要的朋友可以参考下
    2017-02-02
  • 基于java实现简单发红包功能

    基于java实现简单发红包功能

    这篇文章主要为大家详细介绍了基于java实现简单发红包功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Spring装配Bean之用Java代码安装配置bean详解

    Spring装配Bean之用Java代码安装配置bean详解

    这篇文章主要给大家介绍了关于Spring装配Bean之用Java代码安装配置bean的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2017-10-10
  • 从零开始讲解Java微信公众号消息推送实现

    从零开始讲解Java微信公众号消息推送实现

    微信公众号分为订阅号和服务号,无论有没有认证,订阅号每天都能推送一条消息,也就是每天只能推送一次消息给粉丝,这篇文章主要给大家介绍了关于Java微信公众号消息推送实现的相关资料,需要的朋友可以参考下
    2022-09-09
  • Springboot apollo原理及使用方法详解

    Springboot apollo原理及使用方法详解

    这篇文章主要介绍了Springboot apollo原理及使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • spring-boot 多线程并发定时任务的解决方案

    spring-boot 多线程并发定时任务的解决方案

    这篇文章主要介绍了spring-boot 多线程并发定时任务的解决方案,需要的朋友可以参考下
    2019-08-08

最新评论