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

SpringBoot开发——初步了解SpringBoot

文章目录
  • 一、SpringBoot简介
    • 1、什么是Spring Boot
    • 2、Spring Boot的优点
    • 3、Spring Boot功能
  • 二、Spring与Spring Boot对比
  • 三、Spring Boot与Spring MVC
  • 四、Spring Boot体系结构
  • 五、Springboot Initializr
    • 1、Spring Initializr
    • 2、Spring Initializr模块

一、SpringBoot简介

1、什么是Spring Boot

Spring Boot是一个构建在Spring框架顶部的项目。它提供了一种简便,快捷的方式来设置,配置和运行基于Web的简单应用程序。

它是一个Spring模块,提供了 RAD(快速应用程序开发)功能。它用于创建独立的基于Spring的应用程序,因为它需要最少的Spring配置,因此可以运行。
在这里插入图片描述
简而言之,Spring Boot是 Spring Framework 和 嵌入式服务器的组合。

在Spring Boot不需要XML配置(部署描述符)。它使用约定优于配置软件设计范例,这意味着可以减少开发人员的工作量。
我们可以使用Spring STS IDE 或 Spring Initializr 进行开发Spring Boot Java应用程序。

与Spring Boot框架一起,其他许多Spring姐妹项目也有助于构建满足现代业务需求的应用程序。 Spring姐妹项目如下:

  • Spring Data: 它简化了来自关系数据库和 NoSQL 数据库的数据访问。
  • Spring Batch: 它提供了强大的批处理处理。
  • Spring Security: 这是一个安全框架,可为应用程序提供强大的安全性。
  • Spring Social: 它支持与LinkedIn等社交网络集成。
  • Spring Integration: 它是企业集成模式的实现。使用轻量级消息传递和声明性适配器,它有助于与其他企业应用程序集成。

2、Spring Boot的优点

  • 不需要web.xml
  • 不需要springmvc.xml
  • 不需要tomcat,SpringBoot内嵌了tomcat
  • 不需要配置JSON解析,支持REST架构
  • 个性化配置也非常简单
  • 它创建独立 Spring应用程序,这些应用程序可以使用Java -jar 启动。

3、Spring Boot功能

  • Web开发
  • SpringApplication
  • 应用程序事件和侦听器
  • 应用管理
  • 外部配置
  • 属性文件
  • YAML支持
  • 类型安全配置
  • 日志
  • 安全性

Web开发
这是用于Web应用程序开发的非常适合的Spring模块。我们可以轻松创建一个独立的HTTP应用程序,该应用程序使用 TomcatJettyUndertow等嵌入式服务器。我们可以使用 spring-boot-starter-web 模块快速启动和运行应用程序。

SpringApplication
SpringApplication是一个类,提供了一种方便的方式来引导Spring应用程序。可以从main方法开始。我们可以仅通过调用静态run()方法来调用应用程序。
示例:

public static void main(String[] args)
{  SpringApplication.run(ClassName.class, args);  
}

应用程序事件和侦听器
Spring Boot使用事件来处理各种任务。它允许我们创建用于添加侦听器的工厂文件。我们可以使用 ApplicationListener键来引用它。
总是在META-INF文件夹中创建工厂文件,例如 META-INF/spring.factories 。

应用管理
Spring Boot提供了为应用程序启用与管理员相关的功能的功能。它用于远程访问和管理应用程序。我们可以使用 spring.application.admin.enabled 属性在Spring Boot应用程序中启用它。

外部配置
Spring Boot允许我们外部化我们的配置,以便我们可以在不同环境中使用同一应用程序。该应用程序使用YAML文件来外部化配置。

属性文件
Spring Boot提供了一组丰富的 应用程序属性。因此,我们可以在项目的属性文件中使用它。该属性文件用于设置诸如 server-port = 8082 等属性。它有助于组织应用程序属性。

YAML支持
它提供了一种方便的方法来指定层次结构。它是JSON的超集。 SpringApplication类自动支持YAML。它是属性文件的代替方法。

类型安全配置
强大的类型安全配置用于管理和验证应用程序的配置。应用程序配置始终是至关重要的任务,应该是类型安全的。我们还可以使用此库提供的注释。

日志
Spring Boot对所有内部记录都使用通用记录。默认情况下管理日志记录依赖项。如果不需要自定义,我们不应更改日志记录依赖项。

安全性
Spring Boot应用程序是spring的Web应用程序。因此,默认情况下,通过所有HTTP端点上的基本身份验证,它是安全的。可以使用一组丰富的端点来开发安全的Spring Boot应用程序。

二、Spring与Spring Boot对比

Spring Boot是用于创建微服务的基于Java的开源框架。它是由Pivotal Team开发的,用于构建独立的和生产就绪的弹簧应用程序。

Spring: Spring框架是最流行的Java应用程序开发框架。 Spring框架的主要功能是依赖注入或控制反转(IoC)。借助Spring Framework,我们可以开发一个松耦合的应用程序。如果纯粹定义应用程序类型或特征,最好使用。
SpringBoot: Spring Boot是Spring Framework的模块。它允许我们构建具有最少配置或零配置的独立应用程序。如果我们要开发一个简单的基于Spring的应用程序或RESTful服务,最好使用它。

Spring和Spring Boot之间的主要比较讨论如下:

Spring

Spring Boot

Spring Framework是用于构建应用程序的广泛使用的Java EE框架。

SpringBoot Framework被广泛用于开发 REST API

它旨在简化Java EE开发,从而使开发人员更加高效。

它旨在缩短代码长度,并提供开发 Web应用程序的最简单方法。

Spring Framework的主要功能是依赖注入

Spring Boot的主要功能是自动配置。它会根据需求自动配置类

通过允许我们开发松耦合应用程序,可以使事情变得更简单。

它有助于创建配置更少的独立应用。

开发人员编写了大量代码(模板代码)来完成最小的任务。

它减少样板代码。

要测试Spring项目,我们需要显式设置服务器。

SpringBoot提供了嵌入式服务器,例如 JettyTomcat 等。

它不支持内存数据库。

它提供了多个插件来处理嵌入式和内存中数据库,例如 H2

开发人员在 pom.xml 中为Spring项目手动定义依赖项。

Spring Boot在pom.xml文件中带有 starter 概念,该概念内部负责根据Spring Boot要求下载依赖项 JAR 。

三、Spring Boot与Spring MVC

Spring Boot: SpringBoot使得快速引导和开始开发基于Spring的过程变得容易。应用。它避免了很多样板代码。它隐藏了很多复杂的信息,因此开发人员可以快速入门并轻松开发基于Spring的应用程序。
Spring MVC: Spring MVC是用于以下方面的Web MVC框架: 构建Web应用程序。它包含许多用于各种功能的配置文件。这是一个面向HTTP的Web应用程序开发框架。

Spring Boot和Spring MVC出于不同的目的而存在。下面讨论了Spring Boot和Spring MVC之间的主要比较:

SpringBoot

SpringMVC

SpringBoot 是Spring的模块,用于使用合理的默认值打包基于Spring的应用程序。

SpringMVC 是Spring框架下基于模型视图控制器的Web框架。

它提供了用于构建 Spring-powered 框架的默认配置。

它提供了易于使用功能来构建Web应用程序。

无需手动构建配置。

它需要手动进行构建配置。

不需要部署描述符。

必需。

它避免了样板代码,并将依赖项包装在一个单元中。

它分别指定每个依赖项。

减少开发时间提高生产率

要花费相同的时间,要花费更多

四、Spring Boot体系结构

SpringBoot是Spring框架的模块。它用于轻松创建独立的生产级基于Spring的应用程序。它是在核心Spring框架的顶部开发的。
SpringBoot遵循一个分层的体系结构,其中每一层都与它的直接下层或上层(层次结构)进行通信。

之前了解 SpringBoot Architecture 后,我们必须了解其中的不同层和类。 SpringBoot中有四个层,如下所示:

  • 展示层
  • 业务层
  • 持久层
  • 数据库层

在这里插入图片描述
展示层: 表示层负责处理HTTP请求,将JSON参数转换为对象,并对请求进行身份验证并将其传输到业务层。简而言之,它由视图即前端部分组成。

业务层: 业务层处理所有业务逻辑 。它由服务类组成,并使用数据访问层提供的服务。它还执行授权验证

持久层: 持久层包含所有存储逻辑,并将业务对象与数据库行进行相互转换。

数据库层: 在数据库层中, CRUD (创建,检索,更新,删除)

五、Springboot Initializr

1、Spring Initializr

Spring Initializr 是Pivotal Web服务提供的 基于网络的工具。借助 Spring Initializr ,我们可以轻松生成 Spring Boot Project 的结构。它提供了用于创建基于JVM的项目的可扩展API。

它还为项目提供了以元数据模型表示的各种选项。元数据模型使我们能够配置JVM和平台版本等支持的依赖项列表。它以众所周知的方式提供元数据,从而为第三方客户端提供必要的帮助。

2、Spring Initializr模块

Spring Initializr具有以下模块:

  • initializr-actuator: : 它提供有关项目生成的其他信息和统计信息。这是一个可选模块。
  • initializr-bom: : 在此模块中, BOM 代表物料清单。在Spring Boot中,BOM是一种特殊的 POM ,用于控制项目依赖项的版本。它提供了一个中心位置来定义和更新这些版本。它提供了灵活性,可以在我们的模块中添加依赖项而无需担心版本。
    在软件世界之外, BOM 是创建产品所需的零件,项目,组件和其他材料的列表。它说明了如何,如何和在何处收集所需材料。
  • initializr-docs: : 它提供了文档。
  • initializr-generator: : 这是一个核心项目生成库。
  • initializr-generator-spring:
  • initializr-generator-test: : 它提供了用于项目生成的测试基础结构。
  • initializr-metadata: : 它为项目的各个方面提供了元数据基础结构。
  • initializr-service-example : 它提供自定义实例。
  • initializr-version-resolver: 是一个可选模块,用于从任意POM中提取版本号。
  • initializr-web : 它为第三方客户端提供Web端点。

相关文章:

SpringBoot开发——初步了解SpringBoot

文章目录 一、SpringBoot简介 1、什么是Spring Boot2、Spring Boot的优点3、Spring Boot功能 二、Spring与Spring Boot对比三、Spring Boot与Spring MVC四、Spring Boot体系结构五、Springboot Initializr 1、Spring Initializr2、Spring Initializr模块 一、SpringBoot简介…...

双轴伺服电机驱动控制器AGV、AMR专用双伺服电机驱动控制器解决方案

工业机器人数控机床XY机械手双轴机器人堆垛机专用双轴伺服电机驱动控制器48V 14ARMS带有STO功能,隔离高压CAN/RS485/USB通讯支持编码器和霍尔输入 双伺服电机驱动控制器TMCM2611功能介绍 集成2个伺服电机的控制和驱动于一体供电电压48V,驱动电流14A RM…...

【VB语言】EXCEL中VB宏的应用

【VB语言】EXCEL中VB宏的应用 文章目录 [TOC](文章目录) 前言一、EXCEL-VB1.实验过程2.代码 二、EXCEL-VB 生成.c.h文件1.实验过程2.代码 四、参考资料总结 前言 1.WPS-VB扩展包 提示:以下是本篇文章正文内容,下面案例可供参考 一、EXCEL-VB 1.实验过…...

Ubuntu添加桌面快捷方式

以idea为例 一. 背景 在ubuntu中,很多时候是自己解压的文件并没有桌面快捷方式,需要自己找到对应的目录的执行文件手动打开,很麻烦 而只需要在 /usr/share/applications 中创建自定义的desktop文件就能自动复制到桌面 二. 添加方法 创建desk…...

10G EPON光模块

一、10G EPON对称光模块 工作模式:上行突发接收、下行连续发射。 工作原理:当需要发送信号时,系统信号通过光模块的电接口把信号传送到驱动芯片,芯片处理后,驱动激光器发出调制光信号,经光纤发到远端&…...

Elasticsearch+Logstash+Kibana可视化集群部署

文章目录 1.组件介绍简述2.集群规划3.Es组件部署4.Logstash组件部署5.Kibana组件部署6.Kibana的基础使用 1.组件介绍简述 Elasticsearch:开源实时分布式搜索和分析引擎,支持大规模数据存储和高吞吐量,提供丰富的搜索功能和可扩展性。 Logsta…...

基于CanMV IDE 开发软件对K210图像识别模块的开发

简介 CanMV IDE 是一款专为 K210 芯片设计的图形识别 Python 软件,它提供了强大的功能,帮助开发者轻松实现基于 K210 芯片的图形识别应用。无论你是初学者还是经验丰富的开发者,CanMV IDE 都能为你提供便捷的开发环境和丰富的资源。 硬件资…...

win11系统 Docker Desktop提示Docker Engine stopped解决全过程记录

DockerDesktop安装指南以及Windows下WSL2和 Hyper-V相关问题追查 【已解决】win10系统 Docker 提示Docker Engine stopped解决全过程记录 本篇文章主要记录Docker Desktop安装和使用时出现的问题及解决方法,以及后续使用夜神模拟器,关闭了Hyper-V时&am…...

工作室如何实现一机一IP

对于工作室而言,多开游戏账号却是其运营模式的核心需求。他们通过大量囤积金币、资源,再将其变现来获取利润。在这种运营模式下,账号数量直接关系到工作室的收益,所以解决 IP 问题就成了手游工作室发展道路上的首要难题&#xff0…...

WEB安全--SQL注入--二次注入

一、原理: 二次注入的关键在于攻击者的输入并不立即执行,而是经过某些存储或处理后,在后续某个步骤中再触发注入攻击 二、示例: 2.1、sqli-labs-master/less-24: admin# 第一次在网页注册账号和密码时没有漏洞&#x…...

构建现代微服务安全体系:Spring Security、JWT 与 Spring Cloud Gateway 实践

构建现代微服务安全体系:Spring Security、JWT 与 Spring Cloud Gateway 实践 本文将基于提供的代码示例,详细介绍如何在一个Java微服务项目中使用Spring Security、JWT和Spring Cloud Gateway来构建一个高效且安全的微服务体系,并整合性能优…...

Spring Boot 动态数据源实操指南

在实际开发中,我们经常会遇到需要动态切换数据源的场景,比如多租户系统、读写分离、分库分表等。Spring Boot 提供了灵活的配置方式,结合 AbstractRoutingDataSource 可以轻松实现动态数据源切换。本文将带你一步步实现 Spring Boot 动态数据…...

HBase高级技巧:解锁更强大的数据处理能力

HBase高级技巧:解锁更强大的数据处理能力 嘿,小伙伴们!在掌握了HBase的基本操作之后,今天我们将深入探讨一些HBase的高级技巧。这些技巧将帮助你在面对复杂的数据处理需求时更加得心应手,进一步提升系统的性能和可靠性…...

【进阶】JVM篇

为什么学习jvm 1、面试的需要 学过java的程序员对jvm应该不陌生,程序员为什么要学习jvm呢?其实不懂jvm也可以照样写出优质的代码,但是不懂jvm会被大厂的面试官虐的体无完肤。 2、高级程序员需要了解 jvm作用 jvm负责把编译后的字节码转换…...

DeepSeek官方推荐的AI集成系统

DeepSeek模型虽然强大先进,但是模型相当于大脑,再聪明的大脑如果没有输入输出以及执行工具也白搭,所以需要有配套工具才能让模型发挥最大的作用。下面是一个典型AI Agent架构图,包含核心组件与数据流转关系: #mermaid-…...

【动态规划篇】:当回文串遇上动态规划--如何用二维DP“折叠”字符串?

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:动态规划篇–CSDN博客 文章目录 一.回文串类DP核心思想(判断所有子串是否是回文…...

JENKINS(全面)

一.linux系统中JENKINS的安装 注意:安装jenkins需要安装jdk,而且具体版本的jenkins有相对应的jdk版本。可参考以下链接。 Redhat Jenkins 软件包https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/r…...

Promise详解大全:介绍、九个方法使用和区别、返回值详解

Promise的介绍 Promise是异步编程的一种解决方案,它的构造函数是同步执行的,then 方法是异步执行的,所以Promise创建后里面的函数会立即执行,构造函数中的resolve和reject只有第一次执行有效,,也就是说Pro…...

尚硅谷爬虫note004

一、urllib库 1. python自带,无需安装 # _*_ coding : utf-8 _*_ # Time : 2025/2/11 09:39 # Author : 20250206-里奥 # File : demo14_urllib # Project : PythonProject10-14#导入urllib.request import urllib.request#使用urllib获取百度首页源码 #1.定义一…...

Debezium系列之:时区转换器,时间戳字段转换到指定时区

Debezium系列之:时区转换器,时间戳字段转换到指定时区 示例:基本配置应用TimezoneConverter SMT的效果示例:高级配置配置选项当Debezium发出事件记录时,记录中的时间戳字段的时区值可能会有所不同,这取决于数据源的类型和配置。为了在数据处理管道和应用程序中保持数据一…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

Robots.txt 文件

什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...

Redis上篇--知识点总结

Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...

Axure Rp 11 安装、汉化、授权

Axure Rp 11 安装、汉化、授权 1、前言2、汉化2.1、汉化文件下载2.2、windows汉化流程2.3、 macOs汉化流程 3、授权 1、前言 Axure Rp 11官方下载链接:https://www.axure.com/downloadthanks 2、汉化 2.1、汉化文件下载 链接: https://pan.baidu.com/s/18Clf…...

可视化预警系统:如何实现生产风险的实时监控?

在生产环境中,风险无处不在,而传统的监控方式往往只能事后补救,难以做到提前预警。但如今,可视化预警系统正在改变这一切!它能够实时收集和分析生产数据,通过直观的图表和警报,让管理者第一时间…...