SpringBoot开发——初步了解SpringBoot

news2024/9/20 1:04:37

文章目录

  • 一、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之间的主要比较讨论如下:

SpringSpring 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之间的主要比较:

SpringBootSpringMVC
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端点。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker ps 得到的ports列的含义

前言 每次使用docker ps 查询容器运行情况的时候就很容易搞混ports列的含义,今天浅记一下 docker ps ports列含义 首先看docker ps的查询结果显示: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 容器ID …

Axure中继器教程及案例详解

Axure RP 是一款强大的原型设计工具,广泛应用于产品设计、UI/UX 设计及交互设计中。中继器(Repeater)作为 Axure 中的一个重要元件,以其强大的数据处理和动态交互能力,成为设计师们不可或缺的工具。本文将从中继器基础…

LLM agentic模式之multi-agent: ChatDev,MetaGPT, AutoGen思路

文章目录 Multi-agentChatDev设计阶段编码阶段测试阶段文档编写 MetaGPTSOP模式下的Agent通信协议带执行反馈的迭代编程 AutoGenconversable agentsConversation ProgrammingAutoGen的应用 参考资料 Multi-agent ChatDev ChatDev出自2023年7月的论文《ChatDev: Communicative…

告别文档处理烦恼,PDF Guru Anki一键搞定所有

前言 知识就像烛光,能照亮一个人,也能照亮无数人,科技之光更是如此;这一理念深刻地影响了我们如何看待和应用新技术。正是在这样的背景下,一款集PDF处理与高效学习工具于一体的软件——PDF Guru Anki应运而生&#xf…

AI论文生成可靠吗?分享6款AI论文题目生成器网站

在当今学术研究和写作领域,AI论文题目生成器网站的出现极大地简化了学术写作流程。这些工具不仅能够帮助用户快速生成高质量的论文题目,还能提供文献推荐、论文润色等功能,从而提高写作效率和质量。以下是六款值得推荐的AI论文题目生成器网站…

glsl着色器学习(六)

准备工作已经做完,下面开始渲染 gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);gl.clearColor(0.5, 0.7, 1.0, 1.0); gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);gl.enable(gl.DEPTH_TEST); gl.enable(gl.CULL_FACE);设置视口 gl.viewport(0,…

轻量级的git-server工具:docker部署gogs

背景 创建一个自己使用的git server,让平时使用的代码之类的可以直接传到自己的服务器上,进行远程管理。由于一个人使用,gitlab 太重,所以选择gogs来实现功能。 系统:openEuler 22.03 (LTS-SP3) ip: 192.168.100.31 …

【Linux】Linux项目自动化构建工具 - make/Makefile

目录 一、make/Makefile的背景二、make/Makefile的基本概念三、依赖关系四、依赖方法五、make/Makefile原理六、Makefile的伪目标七、Makefile的变量八、Makefile的推导能力结尾 一、make/Makefile的背景 一个工程中的源文件不计数,其按类型、功能、模块分别放在若…

【Java 基础】:三大特征之多态

✨ 杏花疏影里,吹笛到天明 🌏 📃个人主页:island1314 🔥个人专栏:java学习 ⛺️ 欢迎关注:👍点赞 👂&…

JVM参数有哪些?

JVM调优主要是通过定制JVM参数来提Java应用程序的运行速度 JVM参数大致可以分为三类: 1、标准指令:-开头,这些是所有的HotSPot都支持的参数。可以用java -help打印出来; 2、非标准指令:-X开头…

Mysql高级篇(上)—— Mysql架构介绍(二)

Mysql高级篇(上) MySQL架构介绍(二)逻辑架构逻辑架构剖析MySQL8.0中SQL执行流程Linux环境下MySQL8.0中SQL执行原理MySQL语法顺序Oracle中SQL执行流程(了解)数据库缓存池 buffer pool(了解&#…

86、pod部署策略

一、集群的调度 集群的调度: 怎么把pod部署到节点的方法。 1.1、调度的过程: scheduler是集群的调度器,主要任务就是把pod部署到节点上。 1.2、自动调度: 1、公平,保证每个可用的节点都可以部署pod 2、资源的高…

什么是工控安全,产线工控安全加固的方法

一、工控安全概述 想要了解工控安全,首先要了解其资产对象本身,也就是工业控制系统。 1、什么是工控 关于工业控制系统的定义,网上有很多,我就不再赘述,下面这张图是我从csdn找到的,个人觉得还不错。对照…

【多线程】CountDownLatch的简单实现

通过上一篇对CountDownLatch的使用,我们也明白了他的基本原理,接下来我们一起来实现一个CountDownLatch的基础效果 新建一个抽象类,包含countDownLatch需要的参数和方法 package com.atguigu.signcenter.nosafe.chouxiang;/*** author: jd* …

k8s集群的调度

目录 自动调度的原则 调度约束机制:list-watch apiserver和组件之间的watch机制 调度过程的默认算法 1.预算策略 预算的算法 2.优选策略 优选的算法 *用户定制节点部署 1.强制性节点部署 2.节点标签部署(匹配机制) 标签的增删改查…

selenium无法定位元素的几种解决方案

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、frame/iframe表单嵌套 WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌的页面元素无法直接定位。 解决方法: d…

Hadoop 下载

下载法一:官方下载 hadoop官网 1.选择要下载的版本,这里我以3.4.0为例进行说明; 2.跳转后,选择对应系统架构的,进行下载; 下载法二:国内镜像源下载 1.阿里云 这里我以mac m1为案例&#x…

【已解决】Halcon错误代码4104

问题描述 在运行的时候发现报错4104,如下图所示 解决 从字面上理解就是超出了计算机的内存空间了,那么着手解决的话就需要把没次训练的张数减少一些即可。去相对应的修改batch_size即可。 结果 如下图所示,正常在使用GPU训练。 搞定&…

Xilinx FFT IP使用

简介 本章节主要介绍FFT原理,以及Xilinx的FFT IP使用说明做详细介绍。 FFT介绍 FFT主要是将时域信号转换成频域信号,转换后的信号更方便分析。首先,FFT是离散傅立叶变换 (DFT) 的快速算法,那么说到FFT,我们自然要先讲清楚傅立叶变换。先来看看傅立叶变换是从哪里来的? 傅…

虚拟机无法打开网卡 service network restart失败

问题描述 命令重启网卡服务,结果报错如下:Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details 根据提示&#xff…