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

十六:Spring Boot依赖 (1)-- spring-boot-starter 依赖详解

  • 1. 简介:

    • spring-boot-starter 是 Spring Boot 项目中的基础启动器依赖,它为开发者提供了 Spring Boot 应用所需的核心功能和自动配置

    • spring-boot-starter 不是一个具体的功能模块,而是一个基础的启动器。

    • Spring Boot 提供了一系列的 starter 依赖,这些 starter 本质上是将相关的依赖打包成一个集合,使得开发者无需关注具体的依赖版本

  • 2. 引入:

    • 在创建springBoot项目时,自动就引用了
    • maven:pom.xml
      •         <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency>
  • 3. 的工作原理:

    • 在 Spring Boot 中,starter 主要是为了简化依赖管理,特别是针对一些常见的功能(如 Web 开发、数据访问、消息队列等)。

    • 例如,spring-boot-starter-web 会自动引入 Spring MVC、Tomcat 等 Web 相关的依赖,spring-boot-starter-data-jpa 会自动引入 Spring Data JPA 和 Hibernate 相关的依赖。

    • 对于 spring-boot-starter,它主要包括一些基础的功能模块,帮助你启动和运行一个 Spring Boot 应用。你通常不会单独使用它,而是会将其与其他更具体的功能 starter 结合使用。

  • 4.spring-boot-starter 的核心功能:

    • 自动配置:Spring Boot 的核心理念之一是自动配置。spring-boot-starter 会根据你的类路径和配置,自动提供合适的默认配置。例如,如果你的类路径中包含 spring-boot-starter-web,Spring Boot 会自动配置 Spring MVC 和 Tomcat,而无需手动配置 DispatcherServletEmbeddedServletContainer 等。

    • 嵌入式 Web 服务器支持spring-boot-starter 包含了嵌入式 Web 服务器(如 Tomcat、Jetty、Undertow),并且这些 Web 服务器会自动被集成到 Spring Boot 应用中。你不需要独立安装和配置服务器,它会作为应用的一部分直接启动。

    • 日志配置:Spring Boot 使用 Logback 作为默认日志框架,并会自动配置应用的日志级别、格式等。如果你没有配置日志,Spring Boot 会提供一个合理的默认配置。

    • 默认配置文件加载:Spring Boot 自动加载位于 src/main/resources 下的配置文件,如 application.propertiesapplication.yml。这些配置文件可以用来配置应用的各种参数,如端口号、数据库连接、日志设置等。

    • 集成 Spring Boot DevTools(如果启用了相应的 starter):如果你引入了 spring-boot-devtools 作为依赖,Spring Boot 将提供热部署、自动重启、改进的调试信息等功能,从而提高开发效率。

  • 5. 如何使用 spring-boot-starter:

    • 5.1 你在 pom.xml 中引入 spring-boot-starter 后,它会自动提供一系列的功能。如果你需要使用其他特定的功能(如 Web 开发、数据访问、消息队列等),你可以将对应的 starter 添加到你的项目中。

    • 5.2 引入 spring-boot-starter-web (构建 Web 应用):

      • <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        

    • 5.3 引入 spring-boot-starter-data-jpa (用于 JPA 数据库交互):

      • <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        

    • 5.4 引入 spring-boot-starter-thymeleaf (用于 Thymeleaf 模板引擎):

      • <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        

    • 5.5 这些 starter 会自动为你配置相关的框架和组件,而你只需要编写业务代码。Spring Boot 的自动配置机制确保了你不用关注底层框架的细节。

相关文章:

十六:Spring Boot依赖 (1)-- spring-boot-starter 依赖详解

1. 简介&#xff1a; spring-boot-starter 是 Spring Boot 项目中的基础启动器依赖&#xff0c;它为开发者提供了 Spring Boot 应用所需的核心功能和自动配置 spring-boot-starter 不是一个具体的功能模块&#xff0c;而是一个基础的启动器。 Spring Boot 提供了一系列的 sta…...

讲讲关于SNMP与智能PDU插座

什么是SNMP 简单网络管理协议 (SNMP) 是一种应用层协议&#xff0c;主要用于网络管理中的设备监控和控制。通过 SNMP&#xff0c;网络管理员可以从管理站远程访问网络中的设备&#xff0c;获取设备的状态信息、配置参数&#xff0c;甚至控制设备的行为。SNMP 被广泛应用于 TCP/…...

在CentOS下安装RabbitMQ

在CentOS下安装RabbitMQ 在CentOS下安装RabbitMQ可以按照以下步骤进行&#xff1a;步骤 1: 更新系统步骤 2: 安装Erlang步骤 3: 添加RabbitMQ仓库步骤 4: 安装RabbitMQ步骤 5: 启动RabbitMQ服务步骤 6: 检查RabbitMQ状态步骤 7: 启用RabbitMQ管理插件&#xff08;可选&#xff…...

前端使用Canvas实现网页电子签名(兼容移动端和PC端)

实现效果&#xff1a; 要使用Canvas实现移动端网页电子签名&#xff0c;可以按照以下步骤&#xff1a; 在HTML文件中创建一个Canvas元素&#xff0c;并设置其宽度和高度&#xff0c;以适配移动设备的屏幕大小。 // 创建一个canvas元素 let canvas document.createElement(&q…...

什么是OSTRPT报文?

OSTRPT&#xff08;Order Status Report&#xff09;是一种 EDI&#xff08;电子数据交换&#xff09;报文&#xff0c;用于在供应链管理中向采购商报告订单状态。这种报文通常由供应商发送给采购商&#xff0c;目的是告知订单的当前处理状态、预期交货时间、订单中的变化等信息…...

PICO+Unity MR空间锚点

官方链接&#xff1a;空间锚点 | PICO 开发者平台 注意&#xff1a;该功能只能打包成APK在PICO 4 Ultra上真机运行&#xff0c;无法通过串流或PICO developer center在PC上运行。使用之前要开启视频透视。 在 Inspector 窗口中的 PXR_Manager (Script) 面板上&#xff0c;勾选…...

electron 中 contextBridge 作用

1. 安全地实现渲染进程和主进程之间的通信 在 Electron 应用中&#xff0c;主进程和渲染进程是相互隔离的&#xff0c;这是为了安全和稳定性考虑。 然而&#xff0c;在很多情况下&#xff0c;渲染进程需要访问主进程中的某些功能&#xff0c;例如系统级别的操作或者一些应用级…...

15分钟学 Go 第 42 天:RESTful API设计

第42天&#xff1a;RESTful API设计 目标&#xff1a;理解RESTful API的设计原则 在现代Web开发中&#xff0c;RESTful API&#xff08;Representational State Transfer&#xff09;已经成为了标准的架构风格&#xff0c;用于实现客户端与服务器之间的通信。通过遵循REST的设…...

如何安全的中断一个运行中的线程?

文心快码进入3.0时代&#xff0c; 最新发布的代码问答、编码、Debug、单测、安全智能体&#xff0c; 分别在开发的设计、编码、构建、测试验证全流程通过AI赋能&#xff0c;让效率更高、效果更好。可以通过自然语言对话&#xff0c;独立为你完成一项编码任务。 &#x1f449;点…...

【121. 买卖股票的最佳时机】——贪心算法/动态规划

121. 买卖股票的最佳时机 一、题目难度 简单 三、题目描述 给定一个数组 prices&#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择某一天买入这只股票&#xff0c;并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获…...

LLMs之Calculate:利用大语言模型技术基于文本内容实现数字计算能力的简介、常用方法、代码实现之详细攻略

LLMs之Calculate:利用大语言模型技术基于文本内容实现数字计算能力的简介、常用方法、代码实现之详细攻略 导读:在基于大语言模型(LLM)技术实现数字计算能力的背景下,文本内容的理解和计算过程涉及多个领域的交叉技术,包括自然语言处理(NLP)、机器学习、以及数值计算。…...

LeetCode题练习与总结:判断子序列--392

一、题目描述 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;"ace"是"abcde"的一…...

json数据结构的转换

# json可用于赌徒与原件数据的转换&#xff08;json以字符串的形式储存数据&#xff0c;在通过json进行两种语言的转换时&#xff0c;应先将数据类型转换成列表或字典&#xff0c;再由列表或字典转换成json字符串&#xff0c;最后由json字符串转换成另一种语言的列表或字典数据…...

mysql删除语句:@Update(“TRUNCATE TABLE employee“)讲解

这个 SQL 语句&#xff1a; TRUNCATE TABLE employee是一个 SQL DDL&#xff08;数据定义语言&#xff09; 操作&#xff0c;用于清空数据库表中的所有记录&#xff0c;但不会删除表结构&#xff08;即列和索引等&#xff09;。 逐部分解释&#xff1a; TRUNCATE&#xff1a;…...

如何修改浏览器指纹?

网络安全日益重要&#xff0c;我们的上网行为变得越来越容易被追踪和分析。其中&#xff0c;浏览器指纹就是一种强大的技术手段&#xff0c;它可以说是你上网的身份象征。 一、浏览器指纹是什么 浏览器指纹是网站和在线平台用来收集关于你的浏览器、设备和网络的详细信息的一…...

实现3D热力图

实现思路 首先是需要用canvas绘制一个2D的热力图&#xff0c;如果你还不会&#xff0c;请看json绘制热力图。使用Threejs中的canvas贴图&#xff0c;将贴图贴在PlaneGeometry平面上。使用着色器材质&#xff0c;更具json中的数据让平面模型 拔地而起。使用Threejs内置的TWEEN&…...

GEE ui界面实现:用户自画多边形, 按面积比例在多边形中自动生成样点,导出多边形和样点shp,以及删除上一组多边形和样点(有视频效果展示)

零、背景 这几天在选样点&#xff0c;发现GEE有强大的ui功能&#xff0c;于是应用在我的工作上。 下述代码实现了几个功能&#xff1a; ①用户可以自己勾勒多边形&#xff0c;随后程序会按面积比例在多边形中自动生成样点&#xff0c;同时根据改多边形的区域生成区域平均月N…...

React diff算法和Vue diff算法的主要区别

React和Vue都是流行的前端框架&#xff0c;它们各自实现了diff算法来优化虚拟DOM的更新过程。以下是React diff算法和Vue diff算法的主要区别&#xff1a; 1. diff策略 React diff算法&#xff1a; React的diff算法主要采用了同层级比较的策略&#xff0c;即它不会跨层级比较节…...

WSL 2 中 FastReport 与 FastCube 的设置方法与优化策略

软件开发人员长期以来一直在思考这个问题&#xff1a;“我们如何才能直接在 Windows 中运行 Linux 应用程序&#xff0c;而无需使用单独的虚拟机&#xff1f;” WSL 技术为这个问题提供了一个可能的答案。WSL 的历史始于 2016 年。当时&#xff0c;其实现涉及使用 Windows 内核…...

《线性代数》学习笔记

列向量无关 上个星期继续学线性代数&#xff0c;一个矩阵&#xff0c;如何判断它是的列向量有几个是线性无关呢&#xff1f;其实有好几个方法。第一个就是一个一个判断。 先选定一个&#xff0c;然后看下这两个&#xff0c;怎么看呢&#xff1f;如果两个列向量线性相关&#…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...