[转]Spring SpringMVC SpringBoot SpringCloud概念、关系及区别



一、正面解读:

 

  Spring主要是基于IOC反转Beans管理Bean类,主要依存于SSH框架(Struts+Spring+Hibernate)这个MVC框架,所以定位很明确,Struts主要负责表示层的显示,Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作),Hibernate主要作用是数据的持久化到数据库。
  SpringMVC是基于Spring的一个MVC框架,用以替代初期的SSH框架;(spring Framework本身没有Web功能,Spring MVC使用WebApplicationContext类扩展ApplicationContext,使得拥有web功能)。
  Spring Boot是基于Spring4的条件注册的一套快速开发整合包

 

  三者的发展与联系:
  Spring 最初利用“工厂模式”( DI )和“代理模式”( AOP )解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个 MVC 框架(一些用 Spring 解耦的组件),用开发 web 应用( SpringMVC )。然后有发现每次开发都要搞很多依赖,写很多样板代码很麻烦,于是搞了一些懒人整合包( starter ),这套就是 Spring Boot 。
 
  升级云-Spring Cloud:现在是大数据、云时代,上云是必然选择,那么Spring Cloud应运而生,

 

二、概念解读

 

  什么是spring
  关于spring的定义无论是从官方还是市面上已经很多能够清晰明了的做出解释了。我姑且简单定义它为一个轻量级的控制反转(IoC)和面向切面(AOP)的容器,Java 开发框架,至于控制反转、面向切面、轻量级、容器等这些自行百度,很多大牛解释的非常清楚

 

  什么是springMVC
  这里我姑且把名词分开来讲、spring与mvc可以更好地解释什么是springMvc,MVC为现代web项目开发的一种很常见的模式,简言之C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC ,业内常见的mvc模式的开发框架有Struts1,Struts2等。spring作为专业的开发web项目的开源框架,springMvc为内部的一个模块环节,同样采取mvc设计模式。 所以在使用spring开发web项目时,作为核心环节的MVC可以使用struts1/struts2/springMVc

 

  什么是Spring-boot
  我的理解是这样的、spring系列大家族里面产品超级多了、那么使用spring整合基础框架作为项目架构时,大多数初级人员在搭建项目时话费了很多时间也未必能搭建明白。 spring-boot就是为了解决开发人员这个痛点而诞生的,说白了就是把以前的手动配置的过程自动化封装了,提供默认的配置,借用大牛总结的特点就是:
   简单易用,初学者和大牛都可以轻松上手,其中的注解会给使用者提供方便;
   Spring boot对第三方技术进行了很好的封装和整合,提供了大量第三方接口;
   可以通过依赖自动配置,不需要XML等配置文件
   还提供了安全等特性姑且先不做理会。

 

  完了现在boot总结就是可以快速启动,快速构建项目,在配置文件环节省去大量时间和精力,傻瓜式带你进入项目大门,进行业务逻辑编写。现在跟很多框架整合了 按照规范去配置 分分钟上手写代码

 

  什么是spring-cloud

 

  微服务是当前架构领域的热门话题,要想知道什么是spring-cloud,麻烦先去弄清楚什么是微服务。 spring-colud是一种云端分布式架构解决方案,基于spring boot,在spring boot做较少的配置,便可成为 spring cloud 中的一个微服务。 说点有点冠冕堂皇了 我也没用过、不过简单理解为:spring cloud也就是提供了一些常用的分布式组件,都是应用型的,就根spring mvc差不多。

三、深入解读Spring Cloud与 Spring Boot的概念与关系。
    什么是 Spring Boot

    Spring Booti简化了基于 Spring的应用开发,通过少量的代码就能创建一个独立的、产品级別的 Spring应用。 Spring Boot为 Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不素地开始。多数 SpringBoot应用只需要很少的 Spring配置。
    Spring Boot是由 Pivotal团队提供的全新框架,其设计目的是用来简化新 Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是Spring Boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven整合了所有的jar包,Spring Boot整合了所有的框架。
    Spring Boot的核心思想就是约定大于配置,一切自动完成。采用 Spring Boot可以大大的简化你的开发模式,所有你想集成的常用框架,它都有对应的组件支持。
    什么是Spring Cloud
    Spring Cloud是一系列框架的有序集合。它利用 Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线线、负载均衠、断路器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。 Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组台起来,通过 Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系統开发工具包。
    微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元, Spring Cloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多, Spring Cloud做为大管家就需要提供各种方案来维护整个生态。
    Spring Cloud就是一套分布式服务治理的框架,既然它是一套服务治理的框架,那么它本身不会提供具体功能性的操作,更专注于服务之间的通讯、熔断、监控等。因此就需要很多的组件来支持一套功能。
    Spring Boot和Spring Cloud的关系
    Spring Boot是 Spring的一套快速配置脚手架,可以基于 Spring Boot快速开发单个微服务, SpringCloud是一个基于 Spring Boot实现的云应用开发工具; Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架; Spring Boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置, Spring Cloud很大的一部分是基于 Spring Boot来实现,可以不基于 Spring Boot吗?不可以。 Spring Boot可以离开 Spring Cloud独立使用开发项目,但是 Spring Cloud离不开 Spring Boot,属于依赖的关系
  Spring-> Spring Boot> Spring Cloud这样的关系
  Spring Cloud架构
  我们从整体来看一下 Spring Cloud主要的组件,以及它的访间流程
  1、外部或者内部的非 Spring Cloud目都统一通过API网关(Zuul)来访可内部服务.
  2、网关接收到请求后,从注册中心( Eureka)获取可用服务
  3、由 Ribbon进行均负载后,分发到后端的具体实例
  4、徹服务之间通过 Feign进行通信处理业务
  5、 Hystrix负责处理服务超时熔断
  6、 Turbine监控服务间的调用和焠断相关指标
  综上所述,是 Spring Cloud与 Spring Boot的概念及关系,为了更好的学习,请大家务必要熟练掌握相关内容


---------------------
作者:奋斗码农
来源:CSDN
原文:https://blog.csdn.net/xufei512/article/details/79710606
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

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

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

相关文章

C语言试题121之输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 分析:利用 w…

5.4 Spring AOP

2019独角兽企业重金招聘Python工程师标准>>> 5.4.1 从代理机制初探AOP 来看一个简单的例子,当需要在执行某些方法时留下日志信息,可能会这样写: import java.util.logging.*; public class HelloSpeaker{ pirvate Logger loggerL…

WPF 实现心电图曲线绘制

本文经原作者授权以原创方式二次分享,欢迎转载、分享。原文作者:流浪g原文地址:https://www.cnblogs.com/cong2312/p/16411637.html一、前言项目中之前涉及到胎儿心率图曲线的绘制,最近项目中还需要添加心电曲线和血样曲线的绘制功…

C语言试题110之利用条件运算符的嵌套来完成此题:学习成绩大于等于90分的同学用 A 表示,60到89 分之间的用 B 表示, 60 分以下的用 C 表示。

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:C语言试题110之利用条件运算符的嵌套来完成此题:学习成绩大于等于90分的同学用 A 表…

【NOIp 2015】【DFS】斗地主

题面 自己网上去搜吧… 代码 #include <cstdio> #include <cstring> #include <algorithm> #define INF 10000000 #define maxn 40 using namespace std;int t,n,temp,a,zhang[maxn],ansINF;void dfs(int,int,int,int); void shunzi(int,int,int,int,int);vo…

[转]从入门到精通,Java学习路线导航

引言 最近也有很多人来向我"请教"&#xff0c;他们大都是一些刚入门的新手&#xff0c;还不了解这个行业&#xff0c;也不知道从何学起&#xff0c;开始的时候非常迷茫&#xff0c;实在是每天回复很多人也很麻烦&#xff0c;所以在这里统一作个回复吧。 Java学习路线…

如何让 Dapper 支持 DateOnly 类型

前言在上次的文章中&#xff0c;我们让 EF Core 6 支持了 DateOnly 类型。那么&#xff0c;Dapper 是否支持 DateOnly 类型呢&#xff1f;public class User {public int Id { get; set; }public string Name { get; set; }public DateOnly Birthday { get; set; } }using (var…

HP proliant服务器从usb启动

1&#xff0c;开机出现自检画面开始按F9进入设置&#xff0c;进入BIOS 选择standard boot order&#xff08;rpl&#xff09;&#xff0c;把usb driver放在第一位&#xff0c;保存好 2&#xff0c;按F1开始启动。 &#xff08;注&#xff1a;我使用ubuntu14.04&#xff0c;到启…

VB常用内部函数大全一览表(建议收藏)

VB提供了大量的内部函数供用户在编程时调用。内部函数按其功能分为数学运算函数、字符串函数、转换函数、日期与时间函数、判断函数和格式输出函数等。 文章目录 算术函数字符串函数日期和时间函数数据类型转换函数算术函数 字符串函数 日期和时间函数

数据库分类介绍

在当今的互联网中&#xff0c;最常见的数据库模型主要是两种&#xff0c;即“关系型数据库”和“非关系型数据库”。 一、关系型数据库 1、关系型数据库的由来 虽然网状数据库和层次数据库已经很好的解决了数据的集中和共享问题&#xff0c;但是在数据库独立性和抽象级别上扔有…

BZOJ 1717 [Usaco2006 Dec]Milk Patterns 产奶的模式(后缀数组)

【题目链接】http://www.lydsy.com/JudgeOnline/problem.php?id1717 【题目大意】 求一个最长的串&#xff0c;使得其在母串中出现的次数达到要求 【题解】 二分答案&#xff0c;利用后缀数组求出的height数组进行检验 【代码】 #include <cstdio> #include <cstring…

记一次 .NET 某物管后台服务 卡死分析

一&#xff1a;背景 1. 讲故事这几个月经常被朋友问&#xff0c;为什么不更新这个系列了&#xff0c;哈哈&#xff0c;确实停了好久&#xff0c;主要还是打基础去了&#xff0c;分析 dump 的能力不在于会灵活使用 windbg&#xff0c;而是对底层知识有一个深厚的理解&#xff0c…

【C#程序设计】教学讲义——第三章:C#语言基础

完整C#教学课件系列: 【C#程序设计】教学讲义——第一章:C#语言概述 【C#程序设计】教学讲义——第二章:简单C#程序设计 【C#程序设计】教学讲义——第三章:C#语言基础 文章目录 3.1 C#程序结构3.2 变量和常量3.3 常用数据类型3.4 运算符和表达式3.1 C#程序结构 3.1.1 组成…

直接在script里面换样式IE6,7,8不兼容

1 <!DOCTYPE HTML>2 <html>3 <head>4 <meta http-equiv"Content-Type" content"text/html; charsetutf-8">5 <title>无标题文档</title>6 </head>7 8 <body>9 10 <input id"inp1" type&quo…

C语言试题111之 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时 共有 5 个数相加),几个数相加有键盘控制。

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目: s=a+aa+aaa+aaaa+aa…a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时 共…

Redis常用配置参数详解及查看修改命令

目录 Redis常用配置参数 Redis配置参数查看命令 语法 举例 说明&#xff1a; Redis配置参数修改命令 语法 举例 说明&#xff1a; Redis常用配置参数 序号配置项说明1daemonize noRedis 默认不是以守护进程的方式运行&#xff0c;可以通过该配置项修改&#xff0c;使…

反射封装工具类-----零SQL插入

V_1.0 需求&#xff1a;开发一个工具方法&#xff0c;辅助初级程序员在不需要掌握sql命令和JDBC的情况下&#xff0c;实现对数据库的插入操作。 V_4.0 实现0sql插入操作需要解决的问题. 1. 如何确认当前【陌生对象】关联的【表名】 2. 如何确认当前表中需要添加数据的字段 3. …

MathType插入带序号公式的两种方法

方法一&#xff1a; 由于我之前使用表格15% 70% 15%来布局的&#xff0c;所以最开始相的就是如何录入公示后插入公式序号&#xff0c;如下图所示 先设置序号格式 录好公式后点“Insert Number”就好了&#xff0c;这样的话需要紧挨着公式&#xff0c;用空格把他空到最右侧就好了…

数据结构算法:基于C#语言用图实现最短路径,太妙了!

文章目录 构造类并实现最短路径方法设计界面编写程序测试新的Graph类构造类并实现最短路径方法 在前面的C#编程中,我们已经完成了诸如遍历、最小生成树等许多方法,这个类已经可以完成诸如邻接矩阵输入、顶点矩阵输入问题。这个类在Graph2.cs中。 现在,我们新建立一个WINDOW…

【系统设计】邻近服务

在本文中&#xff0c;我们将设计一个邻近服务&#xff0c;用来发现用户附近的地方&#xff0c;比如餐馆&#xff0c;酒店&#xff0c;商场等。设计要求 从一个小明去面试的故事开始。面试官&#xff1a;你好&#xff0c;我想考察一下你的设计能力&#xff0c;如果让你设计一个…