当前位置: 首页 > news >正文

《学会 SpringBoot · 依赖管理机制》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗
🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数,欢迎多多交流。👍

文章目录

    • 写在前面的话
    • 依赖管理机制
    • 总结陈词

CSDN.gif

写在前面的话

进行 SpringBoot 开发工作的,引入 spring-boot-starter-web 就可以让程序具备 SpringMVC 的功能,而且连版本号也不需要写。
本篇博文简单介绍一下 SpringBoot 的依赖管理机制。


依赖管理机制

【SpringBoot 场景启动器】
SpringBoot 的场景启动器,导入相关的场景,拥有相关的功能。
默认支持的所有场景:链接
● 官方提供的场景:命名为:spring-boot-starter-*
● 第三方提供场景:命名为:*-spring-boot-starter
场景一导入,万物皆就绪。

【疑问:为什么导入 starter-web 所有相关依赖都导入进来?】
SpringBoot 场景启动器,开发什么场景,就导入什么场景启动器。
基于 Maven 依赖传递原则,A依赖B,B依赖C,那么A就拥有B和C。
因此,导入场景启动器,自动把这个场景的所有核心依赖全部导入进来。

【疑问:为什么不需要写版本号?】
每个 SpringBoot 项目都有一个父项目 spring-boot-starter-parent,而它的父项目是 spring-boot-dependencies。
spring-boot-dependencies 相当于版本管理中心,把所有常见的jar的依赖版本都声明好了。
主要也是利用 Maven 的 dependencyManagement 特性。

【疑问:如何自定义版本】
直接利用maven的就近原则。
1、直接在当前项目 properties 标签中声明父项目用的版本属性
以 Redis 客户端为例:

<jedis.version>调整为自己需要的版本</jedis.version>

其在 spring-boot-dependencies 中定义如下:

<jedis.version>5.0.2</jedis.version>
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>${jedis.version}</version>
</dependency>

2、直接在导入依赖的时候声明版本

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>调整为自己需要的版本</version>
</dependency>

【总结一下】
基于 Maven 实现了依赖管理机制,开发中按需引入场景,其他 SpringBoot 帮忙做好了。
要注意的是:
1、SpringBoot 有管理的依赖,版本号尽可能用默认的,兼容性问题较少;
2、SpringBoot 有管理的依赖,比如第三方的 jar 包,需要自行声明好;
依赖信息参考:Maven 仓库


总结陈词

💗 后续会逐步分享企业实际开发中的实战经验,有需要交流的可以联系博主。

CSDN_END.gif

http://www.lryc.cn/news/429981.html

相关文章:

  • 全网行为管理软件有哪些?5款总有一款适合你的企业!
  • 以简单的例子从头开始建spring boot web多模块项目(二)-mybatis简单集成
  • Golang | Leetcode Golang题解之第354题俄罗斯套娃信封问题
  • jmeter中添加ip欺骗
  • WPF篇(19)-TabControl控件+TreeView树控件
  • appium下载及安装
  • XSS项目实战
  • SD-WAN降低网络运维难度的关键技术解析
  • 【算法基础实验】图论-最小生成树-Prim的即时实现
  • LLama 3 跨各种 GPU 类型的基准测试
  • FreeRTOS 快速入门(五)之信号量
  • centos 服务器之间实现免密登录
  • RabbitMq实现延迟队列功能
  • redis内存淘汰策略
  • 实时洞察应用健康:使用Spring Boot集成Prometheus和Grafana
  • 生信圆桌x生信豆芽菜:生物信息学新手的学习与成长平台
  • 创客匠人标杆对话(上):她如何通过“特长+赛道”实现财富升级
  • 最少钱学习并构建大模型ollama-llama3 8B
  • AVI视频损坏了怎么修复?轻松几步解决你的困扰
  • 【C++】map、set基本用法
  • 模型 闭环原理
  • 3007. 价值和小于等于 K 的最大数字(24.8.21)
  • 微服务 - 分布式锁的实现与处理策略
  • Catf1ag CTF Web(九)
  • QT QFileDialog 类
  • 了解 K-Means 聚类的工作原理(详细指南)
  • 预警先行,弯道哨兵让行车更安全
  • 预约咨询小程序搭建开发,uniapp前端,PHP语言开发
  • 极速文件预览!轻松部署 kkFileView 于 Docker 中!
  • 某验九宫格分类识别