Spring与SpringBoot

news2024/11/23 21:14:20

目录

前言

1、Spring能做什么

1.1、Spring的能力

1.2、Spring的生态

1.3、Spring5重大升级

1.3.1、响应式编程

1.3.2、内部源码设计

2、为什么用SpringBoot

2.1、SpringBoot优点

2.2、SpringBoot缺点

3、时代背景

3.1、微服务

3.2、分布式

分布式的困难

分布式的解决

3.3、云原生(Cloud Native)

上云的困难

上云的解决

4、如何学习SpringBoot

4.1、官网文档架构


前言

  • 学习要求 -熟悉Spring基础 -熟悉Maven使用

  • 环境要求

    • Java8及以上

    • Maven 3.3及以上

  • 学习资料

    • Spring Boot官网

    • Spring Boot官方文档

    • 本课程文档地址

    • 视频地址1、视频地址2

    • 源码地址

1、Spring能做什么

1.1、Spring的能力

1.2、Spring的生态

官网:Spring Boot

覆盖了:

  • web开发
  • 数据访问
  • 安全控制
  • 分布式
  • 消息服务等等

 做以上服务都可以从springBoot开始,所以【boot】也有开始之意

1.3、Spring5重大升级

1.3.1、响应式编程

1.3.2、内部源码设计

基于Java8的一些新特性,如:接口默认实现。重新设计源码架构。

2、为什么用SpringBoot

 

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".

能快速创建出生产级别的Spring应用

2.1、SpringBoot优点

  • Create stand-alone Spring applications
    • 创建独立Spring应用
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
    • 内嵌web服务器
  • Provide opinionated 'starter' dependencies to simplify your build configuration
    • 自动starter依赖,简化构建配置
  • Automatically configure Spring and 3rd party libraries whenever possible
    • 自动配置Spring以及第三方功能
  • Provide production-ready features such as metrics, health checks, and externalized configuration
    • 提供生产级别的监控、健康检查及外部化配置
  • Absolutely no code generation and no requirement for XML configuration
    • 无代码生成、无需编写XML

总结

SpringBoot是整合Spring技术栈的一站式框架

SpringBoot是简化Spring技术栈的快速开发脚手架

2.2、SpringBoot缺点

  • 人称版本帝,迭代快,需要时刻关注变化
  • 封装太深,内部原理复杂,不容易精通

3、时代背景

3.1、微服务

James Lewis and Martin Fowler (2014) 提出微服务完整概念。Microservices Guide

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.-- James Lewis and Martin Fowler (2014)

  • 微服务是一种架构风格
  • 一个应用拆分为一组小型服务
  • 每个服务运行在自己的进程内,也就是可独立部署和升级
  • 服务之间使用轻量级HTTP交互
  • 服务围绕业务功能拆分
  • 可以由全自动部署机制独立部署
  • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

3.2、分布式

 

分布式的困难

  • 远程调用(不同服务器上,比如A调用B,B调用C)
  • 服务发现(A调用B的时候怎么知道B的哪台服务器是好的)
  • 负载均衡(即将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行)
  • 服务容错(对于成百上千个调用,要求具有一定的容错性来容忍调用执行出现失败的状况)
  • 配置管理
  • 服务监控
  • 链路追踪(A调用B,B调用C,C调用D...,如果出现错误,那么需要追踪整条链看看错误发生在哪)
  • 日志管理
  • 任务调度
  • ......

分布式的解决

  • SpringBoot + SpringCloud

3.3、云原生(Cloud Native)

原生应用如何上云。

上云的困难

  • 服务自愈(C服务器崩了,能否拉起另一台C服务器)
  • 弹性伸缩(当流量很大时,两台C不够用,能否自动拉起多台C,当流量减少,再将多台C下线)
  • 服务隔离(不同服务器运行不干扰)
  • 自动化部署(自动部署到云服务器上)
  • 灰度发布(即版本控制,假设B出了2.0版本,那么先找一部分B使用2.0版本先试试一段时间)
  • 流量治理(对每一台服务器的吞吐量进行治理。比如,若有一台B性能不太行,那么打到这台B的流量就应该少一些)
  • ......

上云的解决

4、如何学习SpringBoot

4.1、官网文档架构

查看版本新特性;

https://github.com/spring-projects/spring-boot/wiki#release-notes

 

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

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

相关文章

迪文DGUS智能屏如何轻松实现3D动画

三维立体的视觉效果已经被广泛应用于人机交互中,三维图形逼真的显示效果往往可以更加直接的传递出视觉信息,减少用户的信息解读门槛。 传统的三维立体静态、动态画面的显示往往对于 GPU 的图像处理性能、显示带宽有较高要求,GPU 需要完成图形…

使用gs_probackup进行数据库物理备份与恢复

概述 物理备份与恢复适用于数据量大的场景,主要用于全量数据备份恢复,也可对整个数据库中的WAL归档日志和运行日志进行备份。openGauss提供了三种物理备份与恢复相关的工具:gs_backup、gs_basebackup和gs_probackup。三个工具的对比见下图。…

基于FPGA的时间数字转换(TDC)设计(二)

1、多相位TDC计时FPGA代码设计 接上期的讲解,本期主要讲多相位TDC计时的FPGA代码实现。图1为TDC测量实现系统图。时间信号经过探测器后,转换为电信号,一般探测器出来的信号幅度和脉宽都比较小,需要时间鉴别器进行比较和整形,以便于FPGA能够识别。经过FPGA TDC计时模块后,…

RabbitMQ:订阅模型-消息订阅模式

订阅模型-消息订阅模式,也可以称为广播模式,生产者将消息发送到 Exchange,Exchange 再转发到与之绑定的 Queue中,每个消费者再到自己的 Queue 中取消息。 RabbitMQ 单生产单消费模型主要有以下五个角色构成: 生产者&am…

机器学习10大经典算法详解

“数据算法模型”。 面对具体的问题,选择切合问题的模型进行求解十分重要。有经验的数据科学家根据日常算法的积累,往往能在最短时间内选择更适合该问题的算法,因此构建的模型往往更准确高效。本文归纳了机器学习的10大算法,并分别…

Python基础语法(一)

Python基础语法 文章目录Python基础语法基础语法变量的语法(1) 定义变量(2) 使用变量变量的类型(1) 整数(2) 浮点数(小数)(3) 字符串(4) 布尔(5) 其他动态类型特性输入输出注释通过控制台输出通过控制台输入运算符算术运算符关于除法// 取整除法关系运算符逻辑运算符关于短路求…

美格智能Cat.1无线POS终端解决方案,引领消费支付新场景

近年来,随着我国移动互联网的蓬勃发展和智能手机的快速渗透,移动支付在我国全面普及。尤其是后疫情时代下,无接触观念的普及,使我国消费市场形成了以移动支付为主的消费习惯,并催生了万千移动支付场景终端的数字化、智…

磁盘被写保护怎么办?5个方案解除它

硬盘、移动硬盘、U盘、SD卡和TF卡(也称为手机存储卡)具有写保护功能。当它们出现写保护的状态,我们就没有办法在里面写入数据。具体而言,就是无法保存和删除文件。磁盘被写保护怎么办?你需要下面5个方案帮助你&#xf…

20221227英语学习

今日短文 How to Become an Expert 想成为行业的专家?不是只花时间就够了 The drive to become expert – to become as good as we can be, at whatever we’ve chosen to do – is something we all share.It is not about external markers of success.It’s a…

01【WEB开发、Servlet】

文章目录01【WEB开发、Servlet】一、WEB开发简介1.1 什么是WEB开发1.2 软件的架构1.2.1 BS和CS概述1.2.2 WEB资源的类别1)静态网站的特点:2)动态网站的特点:1.3 Web服务器1.3.1 什么是服务器(硬件)1.3.2 什…

再也不愁渲染素材了?AI 生成3D纹理 #Polycam3D 推出新功能

最近有不少群友运用 AIGC 工具来提升工作效率,我听说连 3D 数字资产的渲染贴图素材都能生成了。Mixlab小杜3D 内容制作工具也是我非常感兴趣的领域,Polycam3D 本是一款扫描建模工具,近期也推出了AI生成3D纹理的功能,推荐大家去尝试…

启封化工行业ERP方案 ---危险化学品的备案管理

目录 危险化学品的备案管理制度 易制毒制爆危险化学品采购流程 Sage X3 ERP 危化品备案管理方案 危险化学品的备案管理制度 不少化工企业在日常的生产经营过程中,都有可能会涉及到易制毒、易制爆相关的危险化学品的购买和使用,由于易制爆、易制毒危险…

Vue组件、组件通信、路由、axios、$event、$refs、跨域代理、element-ui

文章目录{ { } }插值表达式$eventv-for删除、新增axios方法优化启动 Vue项目Vue项目的运行流程组件的三个结构组件的使用组件之间的通信父子 组件通信兄弟组件通信操作DOM插槽 slot移除node_modules路由安装、入门嵌套路由获取路由参数跨域代理element-ui表单验证Message 消息提…

基于Java+SQL Server开发(PC)学生管理系统【100010054】

题目学生管理系统 一、摘要 在当今互联网行业,Java 的使用及热度在各大排行榜中始终位于前列,通过本次课程设计,巩固所学 Java 知识,了解 Java 项目的开发流程。本程序是使用 Java 开发的一款学生管理系统,设计中使用…

微信开放小程序SDK,几款SDK产品对比分析

前言 这几天看到微信团队推出了一个名为 Donut 的小程序原生语法开发移动应用框架,通俗的讲就是将微信小程序的能力开放给其他的企业,第三方的 App 也能像微信一样运行小程序了。 其实不止微信,面对广阔的B端市场,阿里也早已开放…

kafka学习笔记

1. 官网 ​​​​​​​​​​​​​​​​​​​​​​​​​Apache Kafka 2. akf X轴拆分: 水平复制,就是讲单体系统多运行几个实例,做集群加负载均衡的模式,主主、主备、主从。解决单点,高可用问题 Y轴拆分: 基于不同的业务拆分 Z轴拆…

年底了,千万不要跳槽。

最近不少人在私信问我:做了几年 Java 工程师,现在很迷茫,想跳槽但是感觉底气不足,不知道如何是好。 作为一个资历不浅的 Java 开发,这几年我面试过不少人。发现大多数面试者,虽然看起来工作努力&#xff0…

FPGA 点亮LED灯

设计流程 首先对项目要有一个全局的考虑,分析项目需要几个模块构成,确定各个子模块的关系和信号之间 的相互关系,然后确定模块的端口信号有哪些;根据每个模块的功能并结合芯片、接口的时序手册画 出该模块能正常工作的时序波形图…

CSS3【垂直对齐方式、光标类型、 边框圆角 、overflow溢出部分显示效果 、元素本身隐藏】

文章目录二、装饰2.1 认识基线(了解)2.2 文字对齐问题2.3 垂直对齐方式2.4 小结2.5(拓展)项目中 vertical-align 可以解决的问题2.6 光标类型2.7 边框圆角2.8 边框圆角的常见应用2.9 小结2.10 溢出部分显示效果2.11 小结2.12 元素…

智慧医院信息化建设解决方案

【版权声明】本资料来源网络,仅用于行业知识分享,供个人学习参考,请勿商用。 【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间进行删除! 完整资料领取见文末,部分资料内容: 远程会诊 云…