范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SpringSpringMVCSpringBootSpringCloud概念关系及区别

  前言
  今天我们来聊的是Spring家族的几个标志性框架 Spring SpringMVC SpringBoot SpringCloud的概念、关系及区别。为什么聊它呢?是因为Spring的这些框架是现在开发技术选型的主流,且发展多年一直被程序员们所喜爱。它的框架也体现着技术发展的新趋势。(不了解Spring家族的框架都不好意思说是自己是一枚JAVA从业者^_^)首先从Spring Core说起。
  Spring家族
  1、Spring (Core)
  我们说到Spring,一般指代的是SpringFramework,  它是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架  ,为coding者提供了一个简易的开发方式。
  Spring的核心特性思想之一IOC,它实现了容器对Bean对象的管理、降低组件耦合,使各层服务解耦。其实现原理可参考之前的文章。
  Spring的另一个核心特性就是AOP,面向切面编程。面向切面编程需要将程序逻辑分解为称为所谓关  注点的不同部分。跨越应用程序多个点的功能称为跨领域问题,这些跨领域问题在概念上 与应用程序的业务逻辑分离。有许多常见的例子,如日志记录,声明式事务,安全性,缓存等。
  如果说IOC依赖注入可以帮助我们将应用程序对象相互分离,那么AOP可以帮助我们将交叉问题与它们所影响的对象分离。二者目的都是使服务解耦,使开发简易。
  当然,除了Spring 的两大核心功能,还有如下这些,如:   Spring JDBC  Spring MVC  Spring ORM·  Spring JMS  Spring Test
  其实不通过Spring框架依然可以实现这些功能特定,但是Spring 提供了更优雅的抽象接口以方便对这些功能的组装,同时又给予每个具体实现以灵活的配置;另外,基于Spring,你可以方便的与其他框架进行集成,如hibernate,ibatis等。Spring官方的原则是绝不重复造轮子,有好的解决方案只需要通过Spring进行集成即可。纵览Spring的结构,你会发现SpringFramework 本身并未提供太多具体的功能,它主要专注于让你的项目代码组织更加优雅,使其具有极好的灵活性和扩展性,同时又能通过Spring集成业界优秀的解决方案。
  2、SpringMVC
  Spring与MVC可以更好地解释什么是springMVC,MVC为现代web项目开发的一种很常见的模式,简言之C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC ,业内常见的MVC模式的开发框架有Struts。
  Spring MVC是Spring的一部分,Spring 出来以后,大家觉得很好用,于是按照这种模式设计了一个MVC框架(一些用Spring解耦的组件),主要用于开发WEB应用和网络接口,它是Spring的一个模块,通过DispatcherServlet, ModelAndView 和View Resolver,让应用开发变得很容易。
  3、SpringBoot
  SpringBoot是一套整合了框架的框架。
  它的初衷:解决Spring框架配置文件的繁琐、搭建服务的复杂性。
  它的设计理念:  约定优于配置  (convention over configuration)。
  基于此理念实现了自动配置(自动配置原理),且降低项目搭建的复杂度。
  搭建一个接口服务,通过SpringBoot几行代码即可实现。基于Spring Boot,不是说原来的配置没有了,而是Spring Boot有一套默认配置,我们可以把它看做比较通用的约定,而Spring Boot遵循的是约定优于配置原则,同时,如果你需要使用到Spring以往提供的各种复杂但功能强大的配置功能,Spring Boot一样支持。
  在Spring Boot中,你会发现引入的所有包都是starter形式,如:   spring-boot-starter-web-services,针对SOAP Web Services   spring-boot-starter-web,针对Web应用与网络接口   spring-boot-starter-jdbc,针对JDBC   spring-boot-starter-cache,针对缓存支持
  等等
  Spring Boot官方对starter的解释如下:
  Starters是一系列极其方便的依赖描述,通过在你的项目中包含这些starter,你可以一站式获得你所需要的服务,而无需像以往那样copy各种示例配置及代码,然后调试,真正做到  开箱即用  ;比如你想使用Spring JPA进行数据操作,只需要在你的项目依赖中引入spring-boot-starter-data-jpa即可。
  Spring、SpringMVC、SpringBoot三者的关系图
  SpringCore主要有IOC 和 AOP两大特性,在此基础上衍生出了SpringMVC,SpringJDBC等组件,SpringBoot又依附于这两层。所以其依赖关系: Spring > SpringMVC > SpringBoot  。
  4、Spring Cloud
  最后我们来看一下 Spring Cloud ,虽然它带有"Cloud",但是它并不是针对云计算的解决方案,而是在 Spring Boot 基础上构建的,用于快速构建分布式系统的通用模式的工具集。
  使用 Spring Cloud 开发的应用程序非常适合在 Docker 或者 PaaS 上部署,所以又叫云原生应用。云原生可以简单理解为面向云环境的软件架构。
  Spring Cloud是一系列框架的有序集合。它利用 Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,基于约定大于配置原则,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
  微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元, Spring Cloud就是这些微服务的大管家,采用了微服务风格架构之后,项目的数量会非常多, Spring Cloud做为大管家就需要提供各种方案来维护整个生态。专注于提供良好的开箱即用体验,并提供可扩展机制。
  Spring Cloud就是一套分布式服务治理的框架,既然它是一套服务治理的框架,那么它本身不会提供具体功能性的操作,更专注于服务之间的通讯、熔断、监控等。因此就需要很多的组件来支持一套功能。
  Spring Cloud集成相关优质项目https://springcloud.cc/
  可以看到Netflix贡献了不少服务组件,主要有 Zuul,Eureka、Hystrix等,地位仅次于Spring。Spring Cloud核心成员
  a、Netflix Zuul
  Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul是用JAVA语言开发的网关。用作WEB网关,作为服务的入口,会集成鉴权、限流、熔断、负载均衡等功能。Zuul1.0是同步阻塞模式发布较早,也较成熟,所以应用比较广。Zuul2.0是异步非阻塞模式,由于Netflix发布一直跳票,所以Spring发布了自己的网关 Spring Cloud Gateway(异步非阻塞模型)。
  b、Netflix Ribbon
  提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。消费端负载均衡,服务清单实例在消费端,消费端进行负载均衡算法分配访问实例。
  c、Netflix Eureka
  服务注册中心,云端服务发现,一个基于REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。它是一个关键服务,消费端发现服务、和生产端注册服务都需要访问服务注册中心,是连接消费端和生产端的枢纽。
  d、Netflix Hystrix
  熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。它关注于服务治理方面,支持Fail-Fast、托底数据容错,保证集群服务的可用性和用户的体验。
  e、Spring Cloud Config
  配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。目标统一管理配置。
  Spring Cloud其它成员
  以上提到的是搭建一个分布式集群服务常见的几个核心组件,当然搭建一个强大的分布式集群还需要其它组件,如:SpringCloud Bus(消息总线)、Spring Cloud Sleuth(日志收集工具包)等。
  SpringBoot 和 SpringCloud区别
  基于SpringCloud一个简单的分布式系统架构图
  每个microsercices、API Gateway、Service registry 均是一个SpringBoot风格的微服务,SpringCloud是一系列框架的集合。
  Spring官方首页图 Spring: the source for modern java
  通过这张图可以看出:SpringBoot专注于构建服务、而SpringCloud专注于协同管理服务。
  四者的关系
  其实写到这里,很多读者应该已经清楚,这四者专注的领域不同,解决的问题也不一样;总的来说,Spring 就像一个大家族,有众多衍生产品例如 Boot,Security,JPA等等。但他们的基础都是Spring 的 IOC 和 AOP,IOC提供了依赖注入的容器,而AOP解决了面向切面的编程,然后在此两者的基础上实现了其他衍生产品的高级功能;
  Spring MVC是基于 Servlet 的一个 MVC 框架,主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种xml,properties处理起来比较繁琐。于是为了简化开发者的使用,Spring社区创造性地推出了Spring Boot,它遵循约定优于配置,极大降低了Spring使用门槛,但又不失Spring原本灵活强大的功能。
  Spring Boot是 Spring的一套快速配置脚手架,可以基于 Spring Boot快速开发单个微服务, Spring Boot专注于快速、方便集成的单个微服务个体。可以把一个SpringBoot的服务看作是一个领域的微服务。但实际的大项目中,涉及多个领域(用户领域、订单领域、支付领域等),这时分解为多个微服务,最终需要这些微服务组合起来完成功能,且保证服务的高可用性。那么Spring Cloud就是这些微服务的大管家。
  Spring Cloud是一系列框架的有序集合。它利用 Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。Spring Cloud关注全局的服务治理框架、它本身不会提供具体功能性的操作,更专注于服务之间的通讯、熔断、监控等。
  小结
  Spring(Core) 是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架。
  Spring MVC和Spring Boot都属于Spring,Spring MVC 是基于Spring的一个 MVC 框架。
  Spring Boot 是基于Spring的一套快速开发整合包,更专注于构建服务。
  Spring Cloud是搭建分布式系统所需的一系列框架的有序集合,更专注于协同管理服务。
  如果此文能帮小伙伴答疑解惑,请  关注「架构那些事儿」公众号!
  你的关注就是我的动力!

爆料疑似iPhone13系列电池信息曝光,M2芯片最早或7月出货虽然今年的新iPhone系列距离正式到来还有着一段不短的时间,但在以往的爆料中已经出现了不少与之相关的细节信息。对于将在接下来到来的新iPhone系列,除了影像系统方面的提升外,还苹果供应链iPhone13系列电池容量大幅增加,续航有救了近几年,苹果iPhone被吐槽最多的,除了几年如一日的刘海之外,要数它的迷之续航了。由于续航太短,大部分iPhone用户在外出时都不得不背个充电宝。曾经有个段子称,共享充电宝就是被OPPOReno6系列开售倒计时,从标准版到超大杯,这些区别应该知道5月27日,OPPO新一代潮机Reno6系列正式发布,共有OPPOReno6OPPOReno6ProOPPOReno6Pro三款,售价2799元起,其中OPPOReno6Pro和O顺丰控股小范围交流纪要Q顺丰一季度的表现?尤其是时效快递增长情况电商快递增长情况以及顺丰和嘉里物流的利润表现。一季度公司成功扭亏为盈,但其中,3月10日以后国内疫情开始爆发,这次疫情跟2020年那次不一5GiPhone开始降价退场,A14IP68防水,发布至今下跌1900元如果不出意外的话,现在大多数用户的手机,都还是4G手机吧,只有少部分用户升级了5G网络,虽说从目前来看,4G和5G网络差距并没有我们想象中的那么大,但这其中的原因,并不是因为5G的月球上也能制备氧气和燃料?月壤竟然这么神奇原标题月壤里的秘密或可在月球上制备氧气和燃料国际学术期刊焦耳的一篇最新论文引发学界广泛关注。研究团队在详细分析嫦娥五号取回的月壤(以下简称嫦娥五号月壤)的元素和矿物结构后,发现月壤洁尔阴洗液冲刺创业板,连年亏损的信科移动拟科创板融资40亿元记者赵阳戈继本周创业板否掉1家公司之后,下周时间里,IPO上会公司数量恢复增至13家。这其中,包括核心产品为洁尔阴洗液的恩威医药,也有融资额高达40亿的中信科移动通信技术股份有限公AirbnbCEO办公室已过时,员工可永久远程办公鞭牛士5月9日消息,据新浪科技消息,对Airbnb首席执行官布莱恩切斯基(BrianChesky)来说,在办公室工作已经成为过去式。在周日发表的时代杂志中,切斯基在采访中表示,他认豪华电动MPV赛道之争,岚图梦想家对比荣威iMAX8EV终于,电动化大军渗透到MPV市场了!本周,荣威纯电动MPViMAX8EV正式开启预售,预售价区间为27。98万32。98万元,同样打着双动力布局电动MPV开创者的岚图梦想家也正式上手机界绝地武士诺基亚1020在如今这个手机拍照已经号称上亿像素的时代,虽然普通手机也就几千万级别,而且还有着多镜头的加持,拍照效果实在是不错的了,但当我回看差不多9年前,却有着一台手机的出世让当时的我则是一惊乌米Umi3框架中,如何实现每个页面都有自己个性HTML文件?在Umi3官方文档中,有一个配置项exportStatic需在配置文件(umirc。ts或configconfig。ts)中设置,语法如下exportStaticTypeobjec
科学驿站高精度研究揭示流体与海山俯冲对大地震的重要控制作用文羊城晚报全媒体记者李钢通讯员李淑记者从中国科学院南海海洋研究所了解到,由该所边缘海与大洋地质重点实验室王志与林间团队获得高精度地震结构成果,揭示了流体迁移与海山俯冲对大地震孕育具全新缪斯音箱,原包装,音响师印章90年代国产音响辉煌的见证在二手网上浏览,不经意间,一对缪斯音箱映入眼帘,吸引我的并不仅仅是罗密欧这个不常见的型号,更重要的是,这位音箱的主人居然还保存着原装箱和几张珍贵的纸片。几页说明书,盖了音响师的印章推荐从入门到放弃,2022最值得推荐的14款播放机没有什么比聆听一张精彩的CD专辑,让人感到更惬意的。当然,好的CD播放机能够帮助你最大限度地享受这场音乐之旅。购买CD播放机前应该考虑什么?比如功能易用性和控制,当然还有其他要素,电池总要充到100?快住手吧你当下的生活里,手机不仅是通讯工具,在工作休闲社交中也发挥着越来越重要的作用。在使用手机的过程中,最让人焦虑的就是手机的低电量提醒。LG在2016年做了一项调查,结果显示90的人在手手机太多不知怎么选?这是一份四月购机指南!请查收都是搭载骁龙8Gen1,一加10Pro小米12ProiQOO9pro和MOTOedgeX30怎么选?随着移动处理器工艺的不断迭代,手机性能已经进入到井喷的时代,所以当我们在选择手机为什么互联网老总纷纷卸任,是钱赚够了,还是干不动了?前不久,京东刚毕业了一帮兄弟马不停蹄的是,刘强东自己也毕业了。至此继马云黄峥之后,国内三大电商平台的CEO都陆续卸任了。就连80后字节CEO张一鸣,也在几个月前卸任了。问题来了,为车企为什么扎堆造手机?奇妙知识季今天我从两个话题出发,为你提供知识服务。一是车企扎堆造手机,二是2022年成中国潮玩出海元年。先来看第一条。你肯定还记得,去年这个时候,有一个很火的词叫互联网造车,当时百2022年买来能用五年的手机,这四款都有性价比与前几年不一样的是,如今的用户换机周期可能更长了一些,不少的用户都希望手机能用个三五年,又不希望花太多的钱在手机上,那么,符合这两个条件的手机有吗?答案当然是肯定的,譬如下面的四款雷柏V500PRO87机械键盘百元多模性价比新选择雷柏是一家较早涉足电脑外设领域的国产品牌,推出的键盘鼠标等外设产品获得了众多消费者的喜爱。比如雷柏V500系列机械键盘,就因为出色的设计炫酷的灯效长久的续航以及超高的性价比,得到了外媒再见,ASML?台积电能成为全球芯片代工行业的佼佼者,不仅是因为掌握了先进的芯片制造技术,还因为能够优先获得ASML的EUV光刻机,一共生产了142台,台积电就买走一半。EUV光刻机是生产7nm及马斯克提议将twitter改名为titter新晋推特大股东特斯拉CEO埃隆马斯克度过了一个忙碌的周末,发布了一连串关于未来推特改革方案的推文,包括建议TwitterBlue订阅服务降价禁止广告并允许用户使用狗狗币付款,以及将