【Spring Boot简介】

什么是Spring Boot呢,就是一个Java Web的开发框架,和SpringMVC类似,对比其他Java Web框架的好处,官方说是简化开发,约定大于配置,能够迅速的开发web应用。

所有的技术框架的发展似乎都遵循了一条主线规律:从一个复杂的应用场景,逐渐衍生一种规范框架,只需要进行各种配置而不需要自己去实现它,这时候强大的配置功能成了优点;发展到今天,人们根据实际生产应用情况,选取其中实用功能和设计精华,重构出一些轻量级的框架;开始提倡“约定大于配置”,进而衍生出一些一站式的解决方案。

Spring Boot 是基于 Spring 开发的出的轻量级框架,Spirng Boot 只是用于快速、便捷地开发新一代基于 Spring 框架的应用程序。也就是说,并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、RabbitMQ等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用。
简单来说就是SpringBoot其实不是什么新的框架,只是对Spring更好的整合,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了绝大多数的框架。

Spring Boot的主要优点:
1、快速开发:Spring Boot 提供了快速、简单的开发方式,自动配置 Spring 和其他第三方库,使开发人员专注于业务逻辑的编写,从而极大地提高了开发速度。
2、微服务支持:Spring Boot 自带微服务开发核心组件(如 Spring Cloud),提供了一套完整的微服务开发和部署方案,使开发者可以轻松构建和部署大型、复杂的分布式应用程序。
3、轻量级:Spring Boot 的特性是精简、灵活、模块化的,应用程序的运行时开销较小,能够快速响应用户请求,同时减少了开发和部署的成本。
4、易于部署和管理:Spring Boot 应用程序可以打成 jar 或 war 包,可以很方便地部署到云平台或容器中。
5、多数据源支持:Spring Boot 提供了多种数据库的支持,包括关系型数据库和非关系型数据库,开发人员可以根据自己的需要方便地进行配置和使用。

pom.xml分析

每一个Spring Boot的pom.xml中都有spring-boot-starter-parent依赖,是 Spring Boot 提供的一个父项目,使用 spring-boot-starter-parent 作为父项目可以带来诸多好处,如统一管理依赖版本、减少重复配置、大量的插件管理等。因此,在创建 Spring Boot 项目时,通常推荐使用 spring-boot-starter-parent 作为父项目来简化项目的构建和管理。帮助开发者更方便地构建和管理 Spring Boot 项目。


父依赖点进去,还会有一个父依赖,这里才是真正管理SpringBoot应用里面所有依赖版本的地方,SpringBoot的版本控制中心;以后导入依赖默认是不需要写版本;但是如果导入的包没有在依赖中管理着就需要手动配置版本了;

springboot-boot-starter-xxx:就是spring-boot的XXX场景启动器,

spring-boot-starter-web:为我们内嵌了 Servlet 容器以及 SpringMVC 的依赖,并为 Spring MVC 提供了大量自动配置,可以适用于大多数 Web 开发场景。默认替我们引入了核心启动器 spring-boot-starter,因此,当 Spring Boot  项目中的 pom.xml 引入了 spring-boot-starter-web 的依赖后,就无须在引入 spring-boot-starter 核心启动器的依赖了。即使不进行任何配置,也可以直接使用 Spring MVC 进行 Web 开发。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中的 is 和 ==

一前言 环境:win10 python3.10 二 is 和 is not 1 比较对象的identity is 和 is not 是python的比较运算符,比较运算符除了这两个,还有下图中的这些is 和 is not 比较的是两个对象的是 identity identity是啥,内置函数id()返回的就是这个东西通过上面id函数的解释,现在知…

python 中的 is 和 ==

一前言 环境:win10 python3.10 二 is 和 is not 1 比较对象的identity is 和 is not 是python的比较运算符,比较运算符除了这两个,还有下图中的这些is 和 is not 比较的是两个对象的是 identity identity是啥,内置函数id()返回的就是这个东西通过上面id函数的解释,现在知…

深度学习(学习率)

Pytorch做训练的时候,可以调整训练学习率。 通过调整合适的学习率曲线可以提高模型训练效率和优化模型性能。 各种学习率曲线示例代码如下:import torch import torch.optim as optim import torch.nn as nn import matplotlib.pyplot as plt import numpy as npif __name__ …

程序的链接和装入

程序的链接和装入思考这样一个问题,逻辑地址是在链接时形成的还是在装入时形成的。应该是在链接时就已经形成了逻辑地址,后面的装入确定了物理地址C语言编译的过程 C语言编译分为预处理、编译、汇编和链接四个过程 预处理 预处理用于将所有的#include头文件以及宏定义替换为其…

NewStarCTF WEEK5|WEB 4-复盘

打开题目研究一圈没啥营养价值 下载源码发现好东西if (file_exists($page)) {require_once $page; }else{require_once pages/error_page.php;}活的文件包含 我们直接利用 ?+config-create+/&page=../../../../../usr/local/lib/php/pearcmd&/<?=@eval($_POST[a])…

VS2022+Qt6环境问题汇总

1、安装Qt6时无open source模式只有商业模式Qt账号注册问题,注册时没有选择个人模式,需要重新注册账号 1、无法打开.ui文件扩展-->Qr VS Tool-->OptionsRun in detached windows 选择 True

【攻防技术系列+SQL注入】mysql靶场1.0

墨者靶场(SQL手工注入漏洞测试(MySQL数据库))工具 dirsearch sqlmappython dirsearch.py -u http://<IP>:<端口>/在登录界面,没有账户和密码,也进不去,就在没啥收获的时候,直觉告诉我要打开F12开发者模式,这次信它,就在东点点西点点的时候,我发现了什么。…

mysql数据库查询时用到的分页方法有哪些

在处理数据库查询时,我们经常需要对结果进行分页,以便在用户界面上提供更好的浏览体验。MySQL提供了几种不同的方法来实现这一功能,其中最常见的是使用LIMIT子句。以下是三种使用LIMIT进行分页的基本方法。 一、使用LIMIT子句LIMIT子句用于指定查询结果的最大记录数。它的基…

【攻防技术系列+SQL注入】mysql靶场

墨者靶场(SQL手工注入漏洞测试(MySQL数据库))工具 dirsearch sqlmappython dirsearch.py -u http://<IP>:<端口>/在登录界面,没有账户和密码,也进不去,就在没啥收获的时候,直觉告诉我要打开F12开发者模式,这次信它,就在东点点西点点的时候,我发现了什么。…

从汇编层面看c/c++函数调用过程

函数调用分析 前置知识:全局变量:在函数内部定义的变量 局部变量:在函数外部定义的变量 esp:存储当前函数栈底的地址 ebp:存储当前函数栈顶的地址对于函数形参(实际上):简单:cpu寄存器中 复杂:栈中开空间函数调用机制:局部变量占用的内存是在程序执行过程中“动态”…

算法理论:KMP 学习笔记

\(\text{KMP}\) 笔记! 上次比赛,出题人出了一个 \(\text{KMP}\) 模板,我敲了个 \(\text{SAM}\) 跑了,但是学长给的好题中又有很多 \(\text{KMP}\),于是滚回来恶补字符串基本算法。 \(\text{KMP}\) 是上个寒假学的,为什么最近才完全理解,但 \(\text{KMP}\) 短小精悍,极其…