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 应用程序运行。

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

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

相关文章

无线迷踪:陈欣的网络之旅

第一章 陈欣是一名资深的网络工程师,工作在一家领先的科技公司。她的生活平静而有序,直到有一天,公司的无线网络突然出现了严重的问题。员工们的设备频繁断开连接,无法正常使用。这个问题不仅影响了工作效率,还引起了…

ssm129办公用品管理系统开发与设计+jsp(论文+源码)_kaic

毕 业 设 计(论 文) 题目:办公用品管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本办公用品管理系统…

OMV7 树莓派 tf卡安装

​ 升级7之后,问题多多,不是docker不行了,就是代理不好使 今天又重装了一遍,用官方的链接,重新再折腾一遍…… 使用raspberry pi imager安装最新版lite OS。 注意是无桌面 Lite版 配置好树莓派初始化设置&#xff0…

【数据结构与算法】查找

文章目录 一.查找二.线性结构的查找2.1顺序查找2.2折半查找2.3分块查找 三.树型结构的查找3.1二叉排序树1.定义2.二叉排序树的常见操作3.性能分析 3.2平衡二叉树1.定义2.平衡二叉树的常见操作3.性能分析 3.3B树1.定义2.B树的相关操作 3.4B树1.定义2.B树与B树的比较 四.散列表1.…

SpringCloud篇(服务保护 - Sentinel)

目录 一、雪崩问题及解决方案 1. 雪崩问题 2. 解决方案 方案一:超时处理 方案二:仓壁模式 方案三:断路器模式 方案四:限流 3. 总结 二、服务保护技术对比 三、Sentinel介绍与安装 1. 初识Sentinel 2. Sentinel 优势 3…

C语言项⽬实践-贪吃蛇

目录 1.项目要点 2.窗口设置 2.1mode命令 2.2title命令 2.3system函数 2.Win32 API 2.1 COORD 2.2 GetStdHandle 2.3 CONSOLE_CURSOR_INFO 2.4 GetConsoleCursorInfo 2.5 SetConsoleCursorInfo 2.5 SetConsoleCursorPosition 2.7 GetAsyncKeyState 3.贪吃蛇游戏设…

笔记|M芯片MAC (arm64) docker上使用 export / import / commit 构建amd64镜像

很简单的起因,我的东西最终需要跑在amd64上,但是因为mac的架构师arm64,所以直接构建好的代码是没办法跨平台运行的。直接在arm64上pull下来的docker镜像也都是arm64架构。 检查镜像架构: docker inspect 8135f475e221 | grep Arc…

热点更新场景,OceanBase如何实现性能优化

案例背景 这个案例来自一个保险行业的客户:他们的核心系统底层采用了OceanBase数据库作为存储解决方案,然而,在系统上线运行后,出现了一个异常情况,执行简单的主键更新语句时SQL执行时间出现了显著的波动。为了迅速定…

MYSQL_深入理解自连接_图书借阅情况(2/2)

光说不练假把式。这就开门见山——引出我们的自连接实例:图书借阅情况。 题目: 这是一道笔试题目:如果限时5min内完成,同学们可以测试一下自己对于SQL语句的熟练程度。 题目分析: 可以看见这个数据库有三个实体&…

uniapp luch-request 使用教程+响应对象创建

1. 介绍 luch-request 是一个基于 Promise 开发的 uni-app 跨平台、项目级别的请求库。它具有更小的体积、易用的 API 和方便简单的自定义能力。luch-request 支持请求和响应拦截、全局挂载、多个全局配置实例、自定义验证器、文件上传/下载、任务操作、自定义参数以及多拦截器…

MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并--封装到存储过程中

MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并–封装到存储过程中 我们的最终目的是什么?当然的自动执行这些合并操作! 上一篇 MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并 我们已经知道怎么合…

解决 IDEA 修改代码重启不生效的问题

前言 在使用 IntelliJ IDEA 进行 Java 项目开发时,有时会遇到一个令人头疼的问题:修改了代码后,重启服务却发现更改没有生效。通常情况下,解决这个问题需要通过 Maven 的 clean 和 compile 命令来强制重新编译,但这显…

【Mysql】Mysql函数(上)

1、概述 在Mysql中,为了提高代码重用性和隐藏实现细节,Mysql提供了很多函数。函数可以理解为封装好的模块代码。 2、分类 在Mysql中,函数非常多,主要可以分为以下几类: (1)聚合函数 &#xf…

帧中继原理与配置

Frame Relay 帧中继 LMI(Local Management Interface)本地管理接口 LMI协议通过状态查询报文和状态应答报文维护帧中继的链路状态和PVC状态. DLCI(Data Link Connection Identifier)数据链路连接标识符 DLCI只在本地接口和与之直接相连的对端接口有效,不具有全局有效性,记载帧…

Spring Boot 接口防重复提交解决方案

文章目录 前言使用Token机制实现步骤1.生成Token2.传递Token3.验证Token 使用Redis实现步骤1.引入Redis依赖2.生成Token3.传递Token4.验证Token 使用Spring AOP实现步骤1.定义注解2.创建切面3.使用注解 总结 前言 在Web开发中,防止用户重复提交表单是一个常见的需求…

【QT】解决生成的exe文件出现“无法定位程序入口”或“找不到xxx.dll”的问题

【QT】解决生成的exe文件出现“无法定位程序入口”或“找不到xxx.dll”的问题 零、问题 使用QT编译好项目后,想直接在文件资源管理器中运行exe程序或想分享出去给别人使用发现出现如下问题: 系统错误:找不到xxx.dll。 无法找到入口&#x…

Tomcat启动过程中cmd窗口(控制台)中文乱码的问题

目录 一、问题产生 二、问题分析 三、解决方法(2种) 一、问题产生 在服务器上使用新的Tomcat9(绿色版ZIP),打开一个cmd窗口后,将路径定位到“tomcat\bin\”目录,运行“startup.bat”。程序会自动打开一个新窗口,这个是Java程序的运行窗口,但是里面的中文全是乱码,如…

【MySQL】MySQL数据库入门:构建你的数据基石

🍑个人主页:Jupiter. 🚀 所属专栏:MySQL初阶探索:构建数据库基础 欢迎大家点赞收藏评论😊 目录 🦅数据库基础🐀什么是数据库🐏主流数据库🦆MySQL数据库的基本…

如何使用正则表达式验证域名

下面是一篇关于如何使用正则表达式验证域名的教程。 如何使用正则表达式验证域名 简介 域名是互联网上网站的地址,每个域名由多个标签(label)组成,标签之间用点 . 分隔。域名规则有很多细节,但基本要求是&#xff1a…

Python中的正则表达式教程

一、 正则表达式基础 1。1。概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同。 它拥有自己独特的语法以及一个独立的处理引擎,在提供了正则表达式…