spring-boot-starter-parent的一些记载

Spring Boot源码学习:自动配置与自定义注解详解 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。客户端可以缓存数据以改进性能。文件,文件中定义了 所有的 Spring 场景下的工厂,如 各种 xxxAutoConfiguration 类、Listener、Filter 等等,并缓存下来。所以我们使用 spring-boot-starter-web 不再需要书写版本号,如果需要更换版本号,可以查看 spring-boot-dependencies 中对应依赖的版本书写定义,然后在自己项目中 进行重新赋值。 阅读详情
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

当我们创建一个 Spring Boot 工程时,可以继承自一个 spring-boot-starter-parent ,也可以不继承自它,我们先来看第一种情况。先来看 parent 的基本功能有哪些?

  1. 定义了 Java 编译版本为 1.8 。
  2. 使用 UTF-8 格式编码。
  3. 继承自 spring-boot-dependencies,这个里边定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时才不需要写版本号。
  4. 执行打包操作的配置。
  5. 自动化的资源过滤。
  6. 自动化的插件配置。
  7. 针对 application.properties 和 application.yml 的资源过滤,包括通过 profile 定义的不同环境的配置文件,例如 application-dev.properties 和 application-dev.yml。

请注意,由于application.properties和application.yml文件接受Spring样式占位符 $ {...} ,因此 Maven 过滤更改为使用 @ .. @ 占位符,当然开发者可以通过设置名为 resource.delimiter 的Maven 属性来覆盖 @ .. @ 占位符。

源码分析

当我们创建一个 Spring Boot 项目后,我们可以在本地 Maven 仓库中看到看到这个具体的 parent 文件,以 2.1.4 这个版本为例,松哥 这里的路径是 C:\Users\sang\.m2\repository\org\springframework\boot\spring-boot-starter-parent\2.1.4.RELEASE\spring-boot-starter-parent-2.1.4.RELEASE.pom ,打开这个文件,快速阅读文件源码,基本上就可以证实我们前面说的功能,如下图:

我们可以看到,它继承自 spring-boot-dependencies ,这里保存了基本的依赖信息,另外我们也可以看到项目的编码格式,JDK 的版本等信息,当然也有我们前面提到的数据过滤信息。最后,我们再根据它的 parent 中指定的 spring-boot-dependencies 位置,来看看 spring-boot-dependencies 中的定义:

          

在这里,我们看到了版本的定义以及 dependencyManagement 节点,明白了为啥 Spring Boot 项目中部分依赖不需要写版本号了。

不用 parent

但是并非所有的公司都需要这个 parent ,有的时候,公司里边会有自己定义的 parent ,我们的 Spring Boot 项目要继承自公司内部的 parent ,这个时候该怎么办呢?

一个简单的办法就是我们自行定义 dependencyManagement 节点,然后在里边定义好版本号,再接下来在引用依赖时也就不用写版本号了,像下面这样:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.4.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

这样写之后,依赖的版本号问题虽然解决了,但是关于打包的插件、编译的 JDK 版本、文件的编码格式等等这些配置,在没有 parent 的时候,这些统统要自己去配置。

CPU系统级验证——测试激励——imperas公司riscvOVPsimPlus文件分析 本分析重点关注该repo向量扩展部分。 1. repo简介 该repo是指令集验证的仿真环境包括,大部分是指令集的测试用例,也包含了一些模拟器,如riscvOVPsimPlus。 主要介绍的是riscvOVPsimPlus指令集模拟器,riscvOVPsimPlus(下面统称ISS)是imperas公司在riscvOVPsim基础上扩充了向量扩展的指令集模拟器,该repo于今年9月份部分开源 什么叫部分开源呢? 首先该repo必须在imperas官网注册下载,而且必须是企业用户(免费邮箱人家瞧不上. 阅读详情

相关推荐

2021-03-08 使用SPDK部署NVMe over TCP

NVMe-oF Target入门指南 SPDK NVMe over Fabrics Target是一个用户空间应用程序,通过以太网,Infiniband或光纤通道等结构呈现块设备,SPDK目前支持RDMA和TCP传输。 本文将在已经编译好SPDK的基础上演示如何使用SPDK搭建NVMe over TCP,前提是您已经将一块NVMe硬盘挂载到linux系统中。 如果您想获取有关SPDK更详细的信息,请参考 官方文档。 演示过程的Host主机的ip地址是192.168.0.21,Target主机的ip地址是19

Pancras的博客 2843

Spring Boot 第三篇:理解 spring-boot-starter-parent

基于 maven 的 Spring Boot 项目,我们通常会指定 作为当前项目 pom 的 parent,大多数人都知道这可以用于依赖管理,以便引入依赖时可以省略版本号,这篇我们聊点不一样的。 作为 maven pom 中的 parent,我们需要先了解下 maven pom 中的 parent 有什么作用。我们经常在多个项目中引入相同的依赖,如 Spring MVC 相关依赖。 对于相同的部分,作为程序员的我们下意识的会将其提取到公共的部分,maven 提供了类似 Java 的继承机制,只要将依赖加入

egegerhn的博客 2898

win10 离线安装.Net Framework3.5

起因,安装软件比如3dmax2014等需要.Net Framework3.5支撑,那么需要安装低版本的.Net Framework3.5 闲话少说。 1.下载 NetFx3.cab 链接: https://pan.baidu.com/s/124to7F3BOy4yAlY61OjbDg 提取码: kixu 2.将NetFx3.cab 放入 系统盘的windows目录下(示例 C:\Wi...

m0_37615458的博客 7717

理解SpringBoot项目中的parent

对于parent通俗的讲,SpringBoot使用的相关jar包所依赖的版本号都在parent中定义,当让也并非仅限于如此。 基本功能 当我们创建SpringBoot项目时,可以继承自一个spring-boot-starter-parent,也可以不继承自他。我们先来看看parent的基本功能有哪些? 1、定义了java编译版本为1.8 2、使用UTF-8的格式 3、继承自spring-boot-dependencies,这里面定义了依赖的版本,正式因为这里面定义 了依赖的版本,所以我们在写依赖时

javaYXL的博客 4585

Codex登录要手机验证码?Cockpit Tools跳过验证保姆级教程

摘要:OpenAI升级风控后,Codex登录需手机验证,增加批量账号使用成本。CockpitTools(GitHub 8.3k star)可绕过验证,支持多AI编程平台账号管理。操作步骤:1) 获取ChatGPT网页Session数据;2) 通过转换工具生成CPA格式JSON;3) 导入工具启动Codex。注意:仅适用于未绑定手机号的账号,Session会过期,且需防范数据泄露风险。商业账号通常直接提供认证文件。(150字)

5839

深度学习动画实战:用MotorNerve系统5步实现自然角色交互

本文详细介绍了如何利用腾讯游戏的MotorNerve系统,通过深度学习技术5步实现自然角色动画交互。从环境搭建、基础运动控制到交互过渡和行走转向优化,该系统能显著提升游戏动画制作效率,尤其适合中小团队替代昂贵的动捕方案。重点解析了骨骼动画配置、PFNN控制器使用及Blender工作流集成等核心技术。

book8的博客 686

SpringBoot(二)之parent解析

spring-boot-starter-parent

aoxiaojun的博客 2119

关于LIO-SAM编译时出现错误 /usr/bin/ld: 找不到 -lBoost::timer

关于LIO-SAM编译时出现错误: 下载LIO-SAM代码 进入LIO-SAM文件夹,通过以下代码编译: mkdir build cd build cmake .. make 报错: /usr/bin/ld: 找不到 -lBoost::timer collect2: error: ld returned 1 exit status CMakeFiles/lio_sam_imuPreintegration.dir/build.make:759: recipe for target 'devel/lib/li

wwtx的博客 3648

Spring Boot 的父级依赖:spring-boot-starter-parent

建立SpringBoot项目会添加一个父级依赖,这个依赖的作用是什么呢

devops 9072

【Claude Code】Claude Code 使用指南

本文介绍了AI编码助手Claude的基础和进阶操作指南。基础部分涵盖启动命令、模式切换(自动编辑/Plan/Yolo模式)、资源监控等核心功能,重点讲解了斜杠命令的使用方法。进阶操作详细说明了CLAUDE.md文件的创建与管理,包括项目规范、代码风格等内容的配置,以及如何通过该文件建立持久上下文。同时提醒了使用过程中的安全风险,建议通过配置文件限制AI对关键代码的访问权限。全文提供了完整的操作指引和安全建议,帮助开发者高效安全地使用Claude进行编码辅助。

大家好,我是敖云岚,一个沉迷代码的 “技术玩家”。擅长 Java、C++ 开发,对 MySQL、Redis、RabbitMQ 等技术也颇有研究。博客里既有硬核技术干货,也有诙谐幽默的编程日常分享。愿和你一起,笑着学技术,快乐敲代码! 1万+

智能座舱(七)——智能音频系统

本文剖析车载智能音频系统的核心技术,聚焦音响、功放、麦克风和广播收音机四大组件。音响系统通过多声道布局(如23扬声器阵列)结合动态声场校准算法,实现三维声场覆盖;功放系统采用高效D类技术,支持OTA音效调整和故障自愈;麦克风阵列运用波束成形技术实现精准拾音,并保障隐私安全;广播系统融合数字与网络技术提升音质。核心在于硬件标准化与算法差异化的协同,未来将朝集成化、AI个性化方向发展。

DC20160101的博客 1573

Spring Boot集成MyBatis访问MySQL:项目搭建全流程(包含报错场景分析及解决方案)

本文记录完全从零开始,创建一个新的集成MyBatis的SpringBoot项目,然后逐渐添加配置,使项目能够正常访问数据库的整个流程,并且详细记载了每一个报错和解决错误的过程。

宋冠巡的博客 2079

【NVMEM子系统】二、NVMEM驱动框架

该子系统整体架构不算太大,还是比较容易去理解的,下面我们一起去一探究竟!,该子系统主要用于实现EEPROMEfuse等非易失存储器的统一管理。在早期,像EEPROM驱动是存放于目录下,由于没有做到好的抽象,每次需要去访问相应内存空间,都需要去复制几乎一样的代码,去注册sysfs,这是一个相当大的抽象泄露。NVMEM子系统就是为了解决以往的抽象泄露问题。

Donge's Blog 1714

Springboot入门(项目结构、启动、基本原理)

spring boot学习笔记、底层探究

qq_43647376的博客 688

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SpringBoot

SpringBoot框架; yaml格式配置文件; SpringBoot整合Mybatis; SpringBoot整合Junit; 使用SpringBoot完成ssm整合案例

小旺财的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

你真的理解 Spring Boot 项目中的 parent 吗?

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性。

ssdrrg的博客 664

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring Boot 项目中的 parent原来还有这么多的讲究 - 第398篇

Spring Boot 项目中的 parent原来还有这么多的讲究 - 第398篇

qq_44600824的博客 677

SpringBoot学习之parent

当我们创建一个SpringBoot项目,可以继承自一个spring-boot-starter-parent。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.3</version>

hxxx1314的博客 1152

二、Spring Boot 基础配置(1)

● 不使用spring-boot-starter-parent ● @Spring BootApplication ● 定制banner ● Web容器配置

走在bug的路上 1484

springBoot配置方式

springboot配置

weixin_41636858的博客 2162

springboot的parent标签

在pom.xml文件中,添加这样一个依赖: 发现gav并没有添加version版本信息,但是看依赖项:已经给这个jar包指定了版本号4.0.1帮你做这件事的就是pom.xml文件中的parent标签: 这个spring-boot-starter-parent是可以点进去的 点进去会发现里面有两百多行呢发现spring-boot-dependencies还可以继续点进去 点进去发现有个properties标签,在这个标签里面指定了各个jar包的版本: 注意:parent标签里的version不同,

weixin_47414034的博客 2195

SpringBoot中的parent简单理解

我们可以发现无论是SpringBoot的哪一种创建方式,创建成功后的pom,都会带个parent,这个parent的名堂,本篇就简单讲讲。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</ar...

qq_37432174的博客 2469

spring-boot-starter-parent,spring-boot-dependencies区别

Springboot项目中spring-boot-dependencies或spring-boot-parent管理了那些常用的依赖,所以有些不需要加version版本标签了,可以统一项目的依赖,避免后续的版本冲突。而spring-boot-dependencies是spring-boot-starter-parent的父级项目。

m0_51478572的博客 3221

SpringBoot到底是什么?如何理解parent、starter、引导类以及内嵌Tomcat?

对黑马学习笔记的记录,文章主要带大家一起了解在使用springboot时,对parent、starter、引导类、以及内嵌Tomcat相关的知识的介绍

知识记录 1万+
上一篇: docker基础
下一篇: 多线程并发学习笔记(1)
HelloWorld_Joe
博客等级 码龄9年 1粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值