2、SpringBoot_依赖介绍

news2024/10/6 10:28:14

三、SpringBoot介绍

1.parent

  • 前言:之前是使用spring/springmvc 开发,整合不同的组件会有很多依赖,这些依赖会涉及到很多的版本信息,版本信息多了之后可能会导致版本冲突问题
  • 概述:把很多组件技术的搭配放到一起,名字就叫 parent

1.1实际开发中会引入 parent

  • 引入parent

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
  • 点击后发现又引入了一个 parent

    • 通过该parent 能够找到对应的搭配
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.7.5</version>
    </parent>
    
  • 通过propertie管理版本信息

    <properties>
        <activemq.version>5.16.5</activemq.version>
        <antlr2.version>2.7.7</antlr2.version>
        <appengine-sdk.version>1.9.98</appengine-sdk.version>
        <artemis.version>2.19.1</artemis.version>
        <aspectj.version>1.9.7</aspectj.version>
        <assertj.version>3.22.0</assertj.version>
        <atomikos.version>4.0.6</atomikos.version>
        <awaitility.version>4.2.0</awaitility.version>
        <build-helper-maven-plugin.version>3.3.0</build-helper-maven-plugin.version>
        <byte-buddy.version>1.12.18</byte-buddy.version>
        <cache2k.version>2.6.1.Final</cache2k.version>
    </properties>
    
  • 通过dependencyManagement去管理依赖,子模块想要使用需要去引用依赖才可以,该标签不强制使用依赖需要时才导入

    <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-amqp</artifactId>
            <version>${activemq.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-blueprint</artifactId>
            <version>${activemq.version}</version>
          </dependency>
    </dependencyManagement>
    

1.2引入依赖

  • 通过 dependencies

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
  • 通过导入方式获取依赖(使用alibaba的方式创建的

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>${spring-boot.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
    </dependencyManagement>
    

2.starter

  • 回顾springmvc
    • 问题:之前的操作导入依赖比较麻烦,比如我们要使用Spring-webmvc 一定会去使用Spring-web
    • 引入太繁琐不好管理
  • starter:springboot团队直接把这些固定搭配技术做成一个成品

2.1实际开发体验

  • 开发springmvc(引入此依赖就解决了springmvc的一系列引用,内部引用了多个web开发需要的依赖,就可以直接进行web的开发

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
  • 点击引入的依赖会有如下依赖

    <dependencies>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
          <version>2.7.5</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-json</artifactId>
          <version>2.7.5</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <version>2.7.5</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>5.3.23</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.3.23</version>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    
  • 如何引入json操作

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-json</artifactId>
        <version>2.7.5</version>
        <scope>compile</scope>
    </dependency>
    
  • 点开又会找到曾经我们导入的依赖

    <dependencies>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
          <version>2.7.5</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>5.3.23</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.13.4.2</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.fasterxml.jackson.datatype</groupId>
          <artifactId>jackson-datatype-jdk8</artifactId>
          <version>2.13.4</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.fasterxml.jackson.datatype</groupId>
          <artifactId>jackson-datatype-jsr310</artifactId>
          <version>2.13.4</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.fasterxml.jackson.module</groupId>
          <artifactId>jackson-module-parameter-names</artifactId>
          <version>2.13.4</version>
          <scope>compile</scope>
        </dependency>
    </dependencies>
    

2.2starter总结

  • starter 其实就是很多个坐标的组合

  • 以后引入了什么坐标,直接通过maven观察即可

    在这里插入图片描述

2.3parent和starter总结

  • parent作用:
    • 定义若干版本信息,交给springboot统一管理,目的是减少依赖冲突
  • starter作用
    • 在同一个坐标中定义多个坐标,目的是简化依赖配置
  • 使用步骤
    • 先去找有没有starter ,如果有直接引用
    • 没有直接提供版本信息即可

3.引导类

3.1传统spring配置

  • 提供如下配置
    • SpringConfig
    • SpringMvcConfig

3.2引导类作用

  • SpringBoot工程提供引导类用来启动程序

  • SpringBoot工程启动后创建并初始化Spring容器

    • 证明创建了Spring容器

      @SpringBootApplication
      public class FourSpringbootApplication {
          public static void main(String[] args) {
              ConfigurableApplicationContext context = SpringApplication.run(FourSpringbootApplication.class, args);
              TestController bean = context.getBean(TestController.class);
              System.out.println(bean.test04());
          }
      }
      
  • 注意:引导类必须有一个注解@SpringBootApplication,否则启动不起来

4.内嵌tomcat

4.1定义依赖

  • 依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
  • 点开发现如下依赖

    <dependencies>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
          <version>2.7.5</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-json</artifactId>
          <version>2.7.5</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <version>2.7.5</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>5.3.23</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.3.23</version>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    
  • 点击spring-boot-starter-tomcat

    <dependencies>
        <dependency>
          <groupId>jakarta.annotation</groupId>
          <artifactId>jakarta.annotation-api</artifactId>
          <version>1.3.5</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.tomcat.embed</groupId>
          <artifactId>tomcat-embed-core</artifactId>
          <version>9.0.68</version>
          <scope>compile</scope>
          <exclusions>
            <exclusion>
              <artifactId>tomcat-annotations-api</artifactId>
              <groupId>org.apache.tomcat</groupId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.apache.tomcat.embed</groupId>
          <artifactId>tomcat-embed-el</artifactId>
          <version>9.0.68</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.tomcat.embed</groupId>
          <artifactId>tomcat-embed-websocket</artifactId>
          <version>9.0.68</version>
          <scope>compile</scope>
          <exclusions>
            <exclusion>
              <artifactId>tomcat-annotations-api</artifactId>
              <groupId>org.apache.tomcat</groupId>
            </exclusion>
          </exclusions>
        </dependency>
      </dependencies>
    

4.2Tomcat运行原理

  • tomcat:是java语言开发的软件,就可以通过直接创建tomcat对象的方式去运行tomcat

  • 如何交给spring管理的

    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-core</artifactId>
      <version>9.0.68</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>tomcat-annotations-api</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    
  • 通过 starter引入 tomcat 服务器之后就可以直接创建tomcat对象了

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>2.7.5</version>
      <scope>compile</scope>
    </dependency>
    

4.3更换内置服务器

  • tomcat(默认):apache公司的,受众大,使用多,提供了较多组件

  • jetty:轻量级服务器,负载比tomcat弱

  • undertow

  • 更换内置服务器操作

    <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jetty</artifactId>
            </dependency>
        </dependencies>
    

4.4总结

  • tomcat 只是springboot中的一个依赖而已
  • 想要什么服务器,直接导入对应的starter包即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1041417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ruoyi-vue项目的打包、与运行

ruoyi-vue项目的打包、与运行 打包打包后文件&#xff0c;及其运行 打包 打包后文件&#xff0c;及其运行 注意&#xff1a;要&#xff08;带配置&#xff09;打开redis redis-server.exe redis.windows.conf

细胞机器人系统的概念

摘要 本文讨论了一种新型机器人系统的理论和工程的概念基础。该系统由协作完成任务的自主机器人单元组成。本文在描述了该系统与细胞自动机和神经网络的相关性和差异后&#xff0c;建立了该系统的基础属性及其对机器人单元结构的影响、它们操作的空间以及它们完成全局任务的算法…

SPA项目的登录注册实现,post/get请求以及跨域问题

目录 前言 一. 登录&#xff0c;注册静态页面 1.1 ElementUI简介 1.2 基于SPA项目完成登录 1.2.1 在SPA项目中添加elementui依赖 1.2.2 在main.js中添加elementui模块 1.2.3 在src目录下创建views目录&#xff0c;用于存放vue组件 1.2.4 配置路由 1.2.5 修改项目端口并启…

企业如何实现设备管理数字化?企业有什么办法做到降本增效?

随着时代的发展&#xff0c;科学技术的进步以及自动化水平的不断提高&#xff0c;设备的维护保养成为日常工作中不可或缺的事项。但是&#xff0c;许多工作人员对于设备操作和保养规程的不熟悉&#xff0c;导致误操作、保养不到位或不能及时发现设备故障隐患等情况的大量出现。…

【vue】利用axios发送请求

这里写目录标题 一、项目环境配置二、利用axios发送POST请求登录三、异步实现&#xff1a;利用axios发送POST请求登录&#xff08;json&#xff09;四、异步实现&#xff1a;利用axios发送POST请求登录&#xff08;表单&#xff09;五、token存储六、token使用七、全局的axios配…

基于springboot地方废物回收机构管理系统springboot11

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

2023-9-25 排队打水

题目链接&#xff1a;排队打水 #include <iostream> #include <algorithm>using namespace std;typedef long long LL;const int N 100010;int n; int t[N];int main() {scanf("%d", &n);for(int i 0; i < n; i ) scanf("%d", &t…

服务接口调用OpenFeign_入门案列

构建cloud-consumer-feign-order80工程 修改POM文件 <!-- 引入OpenFeign依赖 --> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>编写YML文件…

Linux 处理文件( touch 命令、cp 命令、mv 命令、rm 命令)

Linux 处理文件 创建文件&#xff08; touch 命令&#xff09;&#xff0c;复制文件&#xff08; cp 命令&#xff09;&#xff0c;重命名文件&#xff08; mv 命令&#xff09;&#xff0c;删除文件&#xff08;rm 命令&#xff09; 文章目录 Linux 处理文件一、创建文件&…

【Linux】【网络】传输层协议:TCP

文章目录 TCP 协议1. TCP 协议段格式2. TCP 报头解析3. TCP 的可靠性4. 面向字节流5. 粘包问题6. 连接队列维护 TCP 的 确认应答机制TCP 的 超时重传机制TCP 的 三次握手TCP 的 四次挥手setsockopt 函数&#xff1a;设置套接字选项&#xff0c;解决 TIME_WAIT 状态引起的 bind …

力扣2861 补9.21

2861. 最大合金数 好蛮好蛮&#xff0c;我连题目都读不懂了&#xff0c;丝毫不明白咋做。 看了灵神题解&#xff0c;嗯&#xff0c;就好家伙&#xff0c;所有合金都需要由同一台机器制造。题目老是看漏&#xff0c;也就是只能选择其中一个机器造合金&#xff0c;这题能用二分也…

电脑WIFI突然消失

文章目录 1. 现象2. 解决办法1&#xff1a;重新启用无线网卡设置3. 解决办法2&#xff1a;更新无线网卡驱动4. 解决办法3&#xff1a;释放静电5. 解决办法4&#xff1a;拆机并重新插拔无线网卡 1. 现象 如下图&#xff1a;电脑在使用过程中WIFI消失 设备管理器中的无线网卡驱…

Redis安装部署与数据类型

目录 一、数据库类型 二、Redis简介 三、Redis 的优点 Redis 具有以下几个优点&#xff1a; Redis为什么这么快&#xff1f; 四、Redis安装部署 五、Redis 数据库常用命令 Redis 多数据库常用命令 六、Redis数据类型 String数据类型 List数据类型 Hash数据类型&…

【Python基础】常用模块学习:sys|os|pytest

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

数据库原理与分析实验三

目录 1、实验目的 2、实验预习与准备 3、实验内容及步骤 本博客为数据库课布置的实验二的作业。 1、实验目的 &#xff08;1&#xff09; 掌握Select子句的功能和检索数据的方法 &#xff08;2&#xff09; 掌握对查询结果排序的方法 2、实验预习与准备 &#xf…

Python爬虫技术系列-02HTML解析-xpath与lxml

Python爬虫技术系列-02HTML解析-xpath与lxml 2 XPath介绍与lxml库2.1 XPath概述2.2 lxml库介绍2.2.1 lxml库安装2.2.2 lxml库基本使用2.2.3 lxml案例a.读取数据并补全b.读取数据并选取节点&#xff1a; 2 XPath介绍与lxml库 参考连接&#xff1a; XPath教程 https://www.w3sch…

85、Redis连接相关的命令, key相关命令

本次讲解要点&#xff1a; Redis连接相关的命令&#xff0c; key相关命令&#xff0c; 启动redis服务器&#xff1a; 打开小黑窗&#xff1a; C:\Users\JH>e: E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-serve…

「UG/NX」Block UI 选择单元SelectElement

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

SpringBoot 学习(三)Web 开发

3. SpringBoot Web 开发 3.1 导入静态资源 (1) webjars 导入 jquery 依赖 <dependency><groupId>org.webjars</groupId><artifactId>jquery</artifactId><version>3.6.0</version> </dependency>访问 jquery.js 文件 http:/…

python将中文标点符号转换成英文标点符号然后再替换成回车符实现换行

一段文字如下&#xff1a; 你发现没,杭州亚运会首个比赛日上午&#xff0c;中国体育代表团竟然狂揽11金&#xff01;这一壮丽景象背后&#xff0c;是中国体育事业的坚实基础和精湛训练的见证。 标点符号都是中文状态下的。现在要替换成英文标点符号。参考了文章&#xff1a; …