Spring Boot教程之Spring Boot简介

Spring Boot 简介

接下来一段时间,我会持续发布并完成Spring Boot教程

Spring 被广泛用于创建可扩展的应用程序。对于 Web 应用程序,Spring 提供了 Spring MVC,它是 Spring 的一个广泛使用的模块,用于创建可扩展的 Web 应用程序。但主要

Spring 项目的缺点是配置非常耗时,对于新开发人员来说可能有点难以承受。

如果您是 Spring 新手,则需要花一些时间才能使应用程序投入生产。解决方案是

Spring Boot

Spring Boot 建立在 Spring 之上,包含 Spring 的所有功能。它现在越来越受到开发人员的青睐,因为它是一个快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不必费力配置和设置。Spring Boot 是一个基于微服务的框架,在其中创建生产就绪的应用程序所需的时间非常少。Spring Boot 的先决条件是 Spring 框架的基本知识。

Spring Boot 的特点

Spring Boot 建立在传统的 Spring 框架之上。因此,它提供了 Spring 的所有功能,并且比 Spring 更易于使用。

  • 它允许避免 Spring 中存在的繁重的 XML 配置:与Spring MVC 项目 不同,在 Spring Boot 中一切都是自动配置的。我们只需要使用适当的配置来利用特定的功能。 例如:如果我们想使用Hibernate(ORM),那么我们可以在模型/实体类上方添加@Table 注释(稍后讨论),并添加@Column 注释以将其映射到数据库中的表和列
  • 它提供了 REST 端点的轻松维护和创建:在 Spring Boot 中创建REST API非常容易。只需在控制器类上使用注释@RestController和@RequestMapping(/endPoint)即可。
  • 它包括嵌入式 Tomcat 服务器:与Spring MVC 项目 不同,我们必须手动添加和安装 tomcat 服务器,而 Spring Boot 带有嵌入式 Tomcat 服务器,以便应用程序可以托管在其上。
  • 部署非常简单,war 和 jar 文件可以轻松部署在 tomcat 服务器中:warjar文件可以直接部署在 Tomcat 服务器上,Spring Boot 提供了将我们的项目转换为 war 或 jar 文件的功能。此外,Tomcat 实例也可以在云上运行。
  • 基于微服务的架构:顾名思义,微服务是指专注于单一类型功能并公开 API(应用程序外围接口)的模块/服务的名称。让我们以医院管理系统为例。
    • 对于单片系统,单一代码将包含所有功能,而这些功能在大规模下很难维护。
    • 但是在基于微服务的系统中,每个功能可以分为更小的子系统,如处理患者注册的服务、处理数据库管理的服务、处理计费的服务等。

    基于微服务的系统可以轻松迁移,因为只需要更改一些服务,这也使调试和部署变得容易。此外,每个服务都可以集成,并且可以采用适合它们的不同技术。

Spring Boot 的演变

  1. Spring Boot 的诞生,源于 2012 年 10 月,一位客户Mike Youngstrom提出了一个 Jira 请求,要求引导 Spring 框架,以便能够快速启动。因此,2013 年初,Spring Boot 诞生了。
  2. 2014 年 4 月,Spring Boot 1.0发布,随后又推出了多个版本。
  3. 2014 年 6 月发布Spring Boot 1.1
  4. 1.2 2015年3月,
  5. 1.3 2016年12月,
  6. 2017 年 1 月为1.4 ,
  7. 2017 年 2 月发布Spring Boot 1.5

Spring Boot 架构

为了了解 Spring Boot 的架构,我们首先了解其中存在的不同层和类。

  • Spring Boot 中的层: Spring Boot 中有四个主要层:
    • 表示层:顾名思义,它由视图(即前端部分)组成
    • 数据访问层:数据库上的 CRUD(创建、检索、更新、删除)操作属于此类别。
    • 服务层:由服务类组成并使用数据访问层提供的服务。
    • 集成层:它由不同的 Web 服务组成(任何可通过互联网提供的服务并使用XML消息传递系统)。
  • 然后我们有实用程序类、验证器类和视图类。
  • 所有类提供的服务都在其相应的类中实现,并通过实现对这些接口的依赖来检索。

Spring Boot 流程架构


  • 由于 Spring boot 使用了类似 Spring data、 Spring MVC的所有功能/模块,因此其架构几乎与 spring MVC 相同,只是 Spring boot 中不需要DAODAOImpl 类
  • 创建数据访问层只需要一个存储库类,该类是实现包含 CRUD 操作的类。
  • 客户端发出 https 请求(PUT/GET)
  • 然后它转到控制器,并且将该路由映射到请求的控制器处理它,并在需要时调用服务逻辑。
  • 业务逻辑在服务层执行,该服务层可能对数据库中的数据执行逻辑,该逻辑通过 JPA 与模型/实体类映射
  • 最后,如果没有发生错误,则响应中返回一个 JSP 页面。

设置 Spring Boot:

  1. 从Oracle 官方网站安装Java JDK。
  2. 下载并安装 Spring Tool Suite (STS)。
  3. 启动一个新的 Spring Starter 项目
    • 点击文件 -> 新建 -> Spring 启动项目
    • 填写适当的详细信息并添加依赖项并完成。
    • 编辑应用程序属性。
    • 将主文件作为 Java 应用程序运行。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue2教程001:初识Vue

文章目录 1、初识Vue1.1、Vue2前言1.2、创建Vue实例1.3、插值表达式1.4 Vue响应式特性 1、初识Vue 1.1、Vue2前言 Vue是什么? 概念:Vue是一个用于构建用户界面的渐进式框架。 Vue的两种使用方式: Vue核心包开发 场景:局部模块…

Linux手动安装nginx

本次以安装nginx-1.12.2为例 1、首先说明一下,安装nginx之前需要安装如下素材: 2、开始安装 第一步,安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel第二步,下载并安装nginx安装包(n…

Element-ui Select选择器自定义搜索方法

效果图 具体实现 <template><div class"home"><el-selectref"currencySelect"v-model"currency"filterable:spellcheck"false"placeholder"请选择":filter-method"handleCurrencyFilter"change&q…

leetcode-44-通配符匹配

题解&#xff1a; 代码&#xff1a; 参考&#xff1a; (1)牛客华为机试HJ71字符串通配符 (2)leetcode-10-正则表达式匹配

C/C++中使用MYSQL

首先要保证下载好mysql的库和头文件&#xff0c;头文件在/usr/include/mysql/目录下&#xff0c;库在/usr/lib64/mysql/目录下&#xff1a; 一般情况下&#xff0c;在我们安装mysql的时候&#xff0c;这些都提前配置好了&#xff0c;如果没有就重装一下mysql。如果重装mysql还是…

Tryhackme练习-Wonderland

基本信息 由于tryhackme是在线靶场&#xff0c;所以这里的IP均为对方的内网IP 攻击机器&#xff1a;10.10.242.186 靶机&#xff1a;10.10.173.3 目标&#xff1a;获取2个flagroot权限 具体流程 信息收集 首先我们使用fscan进行端口扫描&#xff0c;fscan -h 10.10.173.…

SQL笔试题笔记(1)

下列选项中关于数据库事务的特性描述正确的是&#xff08;&#xff09; A.事务允许继续分割B.多个事务在执行事务前后对同一个数据读取的结果是不同的C.一个事务对数据库中数据的改变是暂时的D.并发访问数据库时&#xff0c;各并发事务之间数据库是独立的 答案解析&#xff1a…

vue3 如何调用第三方npm包内部的 pinia 状态管理库方法

抛砖引玉: 如果在开发vue3项目是, 引用了npm第三方包 ,而且这个包内使用了Pinia 状态管理库,那我们如何去调用 npm内部的 Pinia 状态管理库呢? 实际遇到的问题: 今天在制作npm包时遇到的问题,之前Vue2版本的时候状态管理库用的Vuex ,当时调用npm包内的状态管理库很简单,直接引…

麒麟KylinServer的网站,并部署一套主从DNS服务器提供域名解析服务

一、KylinServer网站搭建 ifconfig Copy 注意:根据实际网卡设备名称情况调整代码!不同环境下网卡名称略有不同! 获取本机IP地址,记住IP地址用于之后的配置填写。 ifconfig enp0s2 Copy 下载nginx源码包,并解压缩 wget http://10.44.16.102:60000/allfiles/Kylin/ng…

Python数据分析NumPy和pandas(三十五、时间序列数据基础)

时间序列数据是许多不同领域的结构化数据的重要形式&#xff0c;例如金融、经济、生态学、神经科学和物理学。在许多时间点重复记录的任何内容都会形成一个时间序列。许多时间序列是固定频率的&#xff0c;也就是说&#xff0c;数据点根据某些规则定期出现&#xff0c;例如每 1…

大数据常见面试题及答案(Linux、Zookeeper、Hadoop、Hive)

技术问答题目 一、Linux 1.如何给⽂件(⽂件夹)分配读r、w、x的操作权限&#xff1f; 2. vi 编辑器的常⽤命令有哪些&#xff1f; 3.Linux 中⽂件的操作权限分为⼏种&#xff1f; 4.Linux 中实时查看日志的方法 5. Linux查看内存、磁盘存储、io 读写、端口占用、进程等命…

【软件工程】一篇入门UML建模图(类图)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;软件开发必练内功_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…

开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序

今天给大家分析一个音频分解器&#xff0c;通过傅里叶变换和信封匹配分离音乐中的各个音符和乐器&#xff0c;实现音乐到乐谱的转换。将音乐开源分离为组成乐器。该方式是盲源分离&#xff0c;从头开始制作&#xff0c;无需外部乐器分离库。 相关链接 代码&#xff1a;https:…

微服务day10-Redis面试篇

Redis主从 搭建主从集群 建立集群时主节点会生成同一的replicationID,交给各个从节点。 集群中的缓冲区是一个环型数组&#xff0c;即若从节点宕机时间过长&#xff0c;可能导致命令被覆盖。 主从集群优化 哨兵原理 哨兵是一个集群来确保哨兵不出现问题。 服务状态监控 选举…

交换排序——快速排序

交换排序——快速排序 7.7 交换排序——快速排序快速排序概念c语言的库函数qsort快速排序框架quickSort 7.7 交换排序——快速排序 快速排序概念 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法&#xff08;下文简称快排&#xff09;&#xff0c;其基本思想为&a…

预处理(1)(手绘)

大家好&#xff0c;今天给大家分享一下编译器预处理阶段&#xff0c;那么我们来看看。 上面是一些预处理阶段的知识&#xff0c;那么明天给大家讲讲宏吧。 今天分享就到这里&#xff0c;谢谢大家&#xff01;&#xff01;

自动驾驶系列—深入解析自动驾驶车联网技术及其应用场景

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

华为路由策略配置

一、AS_Path过滤 要求&#xff1a; AR1与AR2、AR2与AR3之间建立EBGP连接 AS10的设备和AS30的设备无法相互通信 1.启动设备 2.配置IP地址 3.配置路由器的EBGP对等体连接&#xff0c;引入直连路由 [AR1]bgp 10 [AR1-bgp]router-id 1.1.1.1 [AR1-bgp]peer 200.1.2.2 as-nu…

深度学习中的Pixel Shuffle和Pixel Unshuffle:图像超分辨率的秘密武器

在深度学习的计算机视觉任务中&#xff0c;提升图像分辨率和压缩特征图是重要需求。Pixel Shuffle和Pixel Unshuffle是在超分辨率、图像生成等任务中常用的操作&#xff0c;能够通过转换空间维度和通道维度来优化图像特征表示。本篇文章将深入介绍这两种操作的原理&#xff0c;…

React--》如何高效管理前端环境变量:开发与生产环境配置详解

在前端开发中&#xff0c;如何让项目在不同环境下表现得更为灵活与高效&#xff0c;是每个开发者必须面对的挑战&#xff0c;从开发阶段的调试到生产环境的优化&#xff0c;环境变量配置无疑是其中的关键。 env配置文件&#xff1a;通常用于管理项目的环境变量&#xff0c;环境…