Springboot maven常见依赖、配置文件笔记

pom.xml文件

一、<parent>

在Maven项目中,pom.xml 文件中的 <parent> 元素用于定义父项目的坐标。使用 <parent> 可以实现继承机制,子项目可以从父项目继承配置信息,比如依赖管理、插件配置等。这样可以避免在多个子项目中重复配置相同的信息,从而简化了 pom.xml 文件的维护工作。

父项目通常是一个聚合项目(也称为多模块项目),它可能并不产生任何实际的输出,而只是用来管理一组相关的子项目。每个子项目通过指定 <parent> 元素来声明它们与父项目的关系。

1.1 spring-boot-starter-parent

复制代码
 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.4</version>
        <relativePath/> <!-- lookup parent from repository -->
 </parent>

打开链接之后:

复制代码
<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-dependencies</artifactId>
  <version>3.3.4</version>
</parent>

继续打开依赖发现

复制代码
<properties>
  <activemq.version>6.1.3</activemq.version>
  <angus-mail.version>2.0.3</angus-mail.version>
  <artemis.version>2.33.0</artemis.version>
  <aspectj.version>1.9.22.1</aspectj.version>
  <assertj.version>3.25.3</assertj.version>
  <awaitility.version>4.2.2</awaitility.version>
  <zipkin-reporter.version>3.4.2</zipkin-reporter.version>
  <brave.version>6.0.3</brave.version>
  <build-helper-maven-plugin.version>3.5.0</build-helper-maven-plugin.version>
  <byte-buddy.version>1.14.19</byte-buddy.version>

。。。。。

规范了各种不同第三方的版本号

常见的:dpcp2,pool2,db2,jetty,kafka,mongdb,mysql,spring,thymeleaf(模板引擎)

undertow(服务器),tomcat

二、 <denpendence>

1.mysql

复制代码
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>

可能不用引入版本号,因为parent中已经规定好了。也可以自定义否则就按照默认的。但要注意不同依赖版本问题,springboot的父项目中规定的各项目依赖已经依赖好了。

2.spring-boot-starter

一般来说spring开发的叫spring-boot-starter-。。。

第三方叫 。。-spring-boot-starter

3.mybatis

4.mybatis-plus

5.springboot-starter-web

复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

点进去

复制代码
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
  <version>3.3.4</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>6.1.13</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>6.1.13</version>
  <scope>compile</scope>
</dependency>

进入tomcat

复制代码
<dependencies>
  <dependency>
    <groupId>jakarta.annotation</groupId>
    <artifactId>jakarta.annotation-api</artifactId>
    <version>2.1.1</version>
    <scope>compile</scope>
  </dependency>
  <dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-core</artifactId>
    <version>10.1.30</version>
    <scope>compile</scope>
    <exclusions>
      <exclusion>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-annotations-api</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-el</artifactId>
    <version>10.1.30</version>
    <scope>compile</scope>
  </dependency>
  <dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-websocket</artifactId>
    <version>10.1.30</version>
    <scope>compile</scope>
    <exclusions>
      <exclusion>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-annotations-api</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
</dependencies>

内部嵌入了一个tomcat

比如要换成jetty的话

复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!--取消tomcat服务器-->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!--加入jetty服务器-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

区别:tomcat默认,jetty轻量级,undertow不太常见

6.spring-boot-starter-test

复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

作用:test程序

三、<builld>

复制代码
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

springboot initial 创建项目已经加入了plugin直接右边打包处理。

运行:java -jar 当前位置的相对地址

yml文件详解

相关推荐
Zhao-Jichao1 小时前
AI Prompting for Everyone 课程笔记 - P21 总结 Conclusion
人工智能·笔记
欢欢李1 小时前
【LTE L3 笔记 05】LTE同步信号
笔记·无线通信·物理层·lte·空口协议
La Pulga3 小时前
【FreeRTOS源码学习笔记】空闲任务与阻塞延时
笔记·mcu·学习·嵌入式·freertos·实时操作系统
蒸蒸yyyyzwd3 小时前
秋招学习笔记 day106
笔记·学习
小李不想当小白4 小时前
WDG看门狗(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
欢欢李5 小时前
【LTE L3 笔记 04】LTE帧结构
笔记·无线通信·物理层·lte·空口协议
Zhao-Jichao7 小时前
AI Prompting for Everyone 课程笔记 - P20 实验与期末项目 Lab and Final Project
前端·人工智能·笔记
Z21-X8 小时前
云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析
运维·笔记·学习·云原生
坤坤子吖8 小时前
Linux网络编程:UDP进阶,从字典服务器到简单聊天室
linux·服务器·网络·c++·笔记·学习
Rabitebla8 小时前
【Linux学习笔记】进程篇(九):进程的创建与退出——fork、写时拷贝与退出码
linux·c++·笔记·学习