纠纷奇闻作文社交美文家庭
聚热点
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

SpringSpringMVCSpringBootSprin

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

橘子皮有哪些好处呢?橘子是常见的水果,吃起来清甜可口,深受大家喜爱。而橘子不但含有丰富的维生素C,它的皮也很好。很多人吃完橘子后,都会留橘子皮放在家中净化空气,但它好处不止这一个。那橘子皮的功效有……SpringSpringMVCSpringBootSprin前言今天我们来聊的是Spring家族的几个标志性框架SpringSpringMVCSpringBootSpringCloud的概念、关系及区别。为什么聊它呢?是因为Spr……帆布鞋上的泥渍怎么去?巧妙去除泥渍帆布鞋在穿的时候不仔细爱惜是很容易沾上泥渍的,尤其是在下雨天,会特别的明显,而且沾上泥渍也很难看。下面5号网小编给大家讲讲帆布鞋上的泥渍怎么去?帆布鞋上的泥渍怎么去帆布鞋……求婚戒指和结婚戒指是同一个吗有区别的求婚戒指和结婚戒指很多人在购买的时候都不知道应该是准备两个还是可以用同一个,毕竟戒指的价格也都不便宜,所以我们来看看求婚和结婚的戒指是用一个还是两个吧!求婚戒指和结婚戒指是同一……时尚又实用,快用华为折叠屏手机点亮你的七夕浪漫近两年,外观靓丽时尚、设计充满创新的折叠屏手机包成为诸多人追捧的对象,也成为手机时尚界的新风潮。七夕将至,折叠屏手机也成为了送给她或他的首选礼物,表达自己浓浓的爱意。那么……西装配什么裙子好看?让你美到挪不开眼在很多人印象中西装都是和西裤搭配在一起,而且会觉得很老气,其实西装配裙子是现在很流行的穿搭方式。下面5号网小编给大家讲讲西装配什么裙子好看?西装配什么裙子好看西装可再也不……皮衣可以水洗吗?皮衣清洗要注意皮衣是在春天很受欢迎的款式,穿着特别的酷,而且皮衣和不同风格的衣服搭配在一起也会有很不一样的效果。下面5号网小编给大家讲讲皮衣可以水洗吗?皮衣可以水洗吗皮革制品一定要注意……长袖连衣裙配什么鞋子?时髦又好看长袖连衣裙是在春天很多小仙女都离不开的款式,穿着特别的好看,而且也很能提升气质,给人一种很温柔的感觉。下面5号网小编给大家讲讲长袖连衣裙配什么鞋子?长袖连衣裙配什么鞋子谁……网易云热评1总有那么一句会让你感同身受01hr也许我能给到你的并不是你要的爱情,也许你忘了我曾出现在你的记忆,不论怎样你始终都是能让我动容的回忆,一定要好好对自己。网易云音乐热评《好好对自己》02hr考……听话不是标准,顶嘴不是罪过教师或父母在教育男孩时,经常说的话莫过于听话二字,如要听老师的话听话才是好儿子不听话就不是好学生,等等。久而久之,听话便成了好学生、好男孩的标准。那些喜欢顶嘴的男孩,被老师和父……冬季温暖又百搭的雪地靴有哪些让你时髦整个冬季雪地靴款式有很多,在冬天能和雪地相匹配的也只有雪地靴了,雪地靴也能让你时髦整个冬季,那么冬季温暖又百搭的雪地靴有哪些呢。冬季温暖又百搭的雪地靴有哪些让你时髦整个冬季……羊毛围巾怎么洗这些步骤要记清羊毛围巾是围巾中很受欢迎的一个材质,这个材质的围巾在冬天特别的暖和,不过大家也都知道,羊毛的围巾保养上面其实是很麻烦的,我们来看看羊毛围巾要怎么清洗吧。羊毛围巾怎么洗1、……
春装薄外套搭配让你穿的又美又时髦都说韩国美女风靡世界,那么韩国棒球联赛的棒球宝贝有多美?欧美达人背带裤时尚穿法让你减龄十足轻松九头身最新流行服饰凉爽凸显气质的夏季流行服饰五位女明星素颜照,只有杨幂还凑乎,其他人几乎全翻车印花连衣裙怎么搭配6种连衣裙穿出夏日好气质不要干练总裁范那就学唐嫣刘诗诗甜美小清新浪漫七夕ORANGECUBE携手焉栩嘉陈立农于朦胧,陪伴每一黑色丝袜怎么搭配时尚欧美街拍范的黑色丝袜搭配穿这样的时尚套装很有职场范开衩包臀裙套装(图)夏季裙子搭配示范让你时尚美丽有气质夏季裙子如何穿搭?让腿来决定裙长
野菊造句用野菊造句大全胆小害羞紧张,社交恐惧如何应对?陈文锦为什么让吴邪进西王母宫陈文锦发现了什么秘密楼板厚度不够怎么处理初三物理质量教案窝藏毒品严重吗,相关处罚的内容是什么?参加台球运动时吃什么可以补充能量蔡徐坤怎么了都黑他出道,蔡徐坤抽烟是真的吗关于梦想的英语优秀演讲稿店铺如何正确处理负面评价?新能源赛道的新方向光热发电紫苏叶泡脚适合哪些人紫苏叶泡脚不适合哪些人

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形