IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot(原理篇 ==> 解析起步依赖 -> 正文阅读

[Java知识库]SpringBoot(原理篇 ==> 解析起步依赖

SpringBoot程序的优点可以集中提现为三个方面

  • 起步依赖(简化依赖配置)
  • 自动配置(简化常用工程配置)
  • 辅助功能(内嵌Tomcat,......)

通过四个模块实现了上述方面

  • starter
  • parent
  • 引导类
  • 内嵌Tomcat

这节我们主要看看parent和starter到底是个什么玩意

?

一、parent?

我们在pom.xml里随便下一个依赖先

可以发现,我们并没有指定版本,可生成的jar包为什么自动给我们指定了4.0.1版本呢?

那SpringBoot是如何帮助我们指定版本的呢?

?当前配置文件在这里继承了一个spring-boot-starter-parent,我们点进去看看?

这里面并没有我们想要的信息,再点进去它继承的spring-boot-dependencies里面看看

?

这里面有一大堆的版本号,包括我们刚刚javax-servlet-api的版本?

但是定义了好了版本,又是在哪里使用了这个版本呢?

我们直接搜索一下javax-servlet-api

那如果我们并不想要它给我们指定的版本呢?

比如这里是mysql驱动jar包默认的是8.0.30版本?

?

可以在pom.xml下的properties下重新定义版本?

总结一下?

  1. 开发SpringBoot程序要继承spring-boot-starter-parent
  2. spring-boot-starter-parent定义了若干个依赖管理
  3. 继承parent模块可以避免多个依赖使用相同技术时出现版本冲突

?

二、starter?

我们只导入了一个?spring-boot-starter-web,但是在Dependencies下怎么会用这么多jar包呢?

我们点进去spring-boot-starter-web看看

?

在spring-boot-starter-web中,又导入了若干个依赖。他们存在这样一种关系:A依赖B,B依赖C,D,E等等...。属于依赖传递

?我们在返回上一层,点进去Tomcat看看

可想而知,里面一定包含了tomcat所需要的一系列依赖?

?

总结一下?

  1. 开发SpringBoot程序需要导入坐标时,通常导入对应的starter
  2. 每个不同的starter根据功能不同,通常包含多个依赖坐标
  3. 使用starter可以实现快速配置的效果,实现简化配置的效果

?

?本章总结:

  • starter
    • SpringBoot中常见项目名称,定义了当前项目中所有的依赖坐标,达到减少依赖配置效果
  • parent
    • 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(是依赖管理,不是依赖),达到减少依赖冲突的目的
    • spring-boot-starter-parent各版本间存在着诸多坐标版本不同
  • 实际开发
  • 使用任意坐标,只用书写GAV(groupId、artifactId、version
    )中的G和A,V由SpringBoot提供,除非SpringBoot未提供
  • 如果发生坐标错误,再指定V?

?

?

?

?

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:12:55  更:2022-09-21 00:13:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:50:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码