SpringBoot 介绍「建议收藏」

SpringBoot 介绍「建议收藏」

大家好,又见面了,我是你们的朋友全栈君。

SpringBoot介绍目录1.简介

2.Why SpringBoot

1.简介 SpringBoot最开始基于Spring4.0设计,是由Pivotal公司提供的框架。

SpringBoot发展史:

2003年Rod Johnson成立Interface公司,产品是SpringFramework2004年,Spring框架开源,公司改名为Spring Source2008年,收购Apache Servlet、Tomcat,为SpringBoot内嵌Web容器奠定基础,整个生态自己掌握2009年,公司被VMWare以4.6亿美金收购被收购后,Spring公司接连收购了很多优秀的开源中间件,比如RabbitMQ、Redis2013年,VMWare、EMC、通用电气三者联合成立Pivotal公司,从这开始,Spring开始一路暴走2014年,推出SpringBoot1.0,基于Spring4.0开发2015年,推出SpringCloud2018年,Pivotal公司上市2018年3月,SpringBoot2.0发布,基于Spring5.0开发 SpringBoot、SpringCloud都是开源的,那么Pivotal靠什么盈利?

微服务是比较新的技术,传统企业要将业务开发微服务模式,肯定会有许多困难,而Pivotal就是靠提供技术服务支持盈利,全球500强公司有2/3的公司都与Pivotal有合作关系。

SpringBoot继承了Spring框架原有的优秀特性,比如IOC、AOP等,他并不是用来代替Spring的解决方案,而是和Spring框架紧密结合,进一步简化了Spring应用的整个搭建和开发过程。其设计目的是用来简化Spring应用的初始搭建以及开发过程。怎么简化的呢?就是通过提供默认配置方式让我们更容易使用。

再来详细解释一下,如果我们基于SSM框架进行过开发,我们可以理解,Spring在集成SpringMVC、Mybatis时,需要做大量的xml文件配置,在集成其他框架或中间件时,也是同样的道理。而再对比一下SpringBoot开发,我们可以发现,我们只需要引入不同的Starters的maven依赖,就可以开箱即用的进行开发。这就是SpringBoot为我们做的:提供默认的配置方式让我们更容易使用。

下面画图来帮助理解:

这是Spring的模块结构

这是我对SpringBoot的理解

关于SpringBoot有一句很出名的话就是约定大于配置。采用SpringBoot可以大大简化开发模式,他集成了大量常用的第三方库配置,所有你想集成的常用框架,他都有对应的组件支持,例如Redis、MongoDB、Dubbo、Kafka、ES等等。

SpringBoot应用中这些第三方类库几乎可以零配置地开箱即用,大部分的SpringBoot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

解释:

约定大于配置:使用SSM开发模式,Spring如果要集成Redis,就要在xml文件中配置bean,并为bean配置properties。依赖包版本冲突:我们可以直接引入一个指定版本的spring-boot-starter-web的依赖,就可以导入不会冲突的web开发相关的jar包 总结

简化Spring应用开发的一个框架;对整个企业级开发技术栈的一个大整合build anything;J2EE开发的一站式解决方案; 优点

快速构建一个独立的 Spring 应用程序 ;嵌入的 Tomcat 、 Jetty 或者 Undertow,无须部署 WAR 文件;提供starter POMs来简化Maven配置和减少版本冲突所带来的问题;对Spring和第三方库提供默认配置,也可修改默认值,简化框架配置;提供生产就绪型功能,如指标、健康检查和外部配置;无需配置XML,无代码生成,开箱即用;2.Why SpringBoot 在开始这个阶段的描述前,首先问自己一个问题,假如我原来使用的是SSM的开发模式,虽然SpringBoot确实简化了Spring开发的配置,但我真的会因为这个简化就去使用SpringBoot吗?

我的答案是不会。首先,我已经熟悉了SSM方式开发,更换成SpringBoot开发模式的成本太大。其实,有很多贡献者提供了方便的SSM脚手架,可以开箱即用。而且SSM开发是单体应用,我只需要做一次集成就够了。

所以上面提到的SpringBoot简化了Spring的开发,这只是最直观的一方面,但并能够让SpringBoot变得如此流行,而真正让他变得流行的是微服务开发模式,这也是谈SpringBoot必谈微服务的原因。可以说是Spring Cloud带动了SpringBoot ,SpringBoot成就了SpringCloud。

下面这张图描述了Spring、SpringBoot、SpringCloud之间的关系。

从谷歌关键词搜索中,我们也可以看到SpringBoot和微服务的火热程度是同步的。

微服务 说到微服务,不得不提到应用的架构演变过程。下面以电商为例做一个简要说明。

在传统应用开发中,我们所有的模块都在一个应用中开发与维护,也就是ALL-IN-ONE开发模式。如果是一个电商应用,那么这个应用中会包含用户模块、支付模块、订单模块、商品模块等等。如果用户提升,应用访问量上升,那么会使用负载均衡的架构,如下图:

但随着应用体积增加,访问量增多,单体应用难以维护、单个模块瓶颈等问题暴露了出来。比如随着开发人员增多,几百个人同时维护一个项目,代码的合并、项目的上线就是很大的问题。还有假如在某些活动时期,比如双11,订单模块流量是最多的,而商品、用户模块访问量可能与平时差不太多,那么如果去部署更多的单体应用服务器,会耗费更多的硬件资源,增加成本。因此也就催生出来微服务架构。

下图是微服务架构,从左到右。流量从左边进入,经过一个个节点,可能是订单模块的节点,可能是用户模块的节点,他们之间使用远程调用方式通信。直到最右边两排,最右边是mysql等持久层存储,挡在他前面的是缓存层,比如Redis。

继续说回SpringBoot。随着流量上升,微服务架构势在必行,或者说水平扩展应用势在必行,那么我如果继续以原来的SSM开发模式开发,原来只需要进行一次的Spring集成其他框架我需要集成很多次,那么就远不如SpringBoot更加快速方便,所以说Spring Cloud带动了SpringBoot ,SpringBoot成就了SpringCloud。

PS:关于微服务的资料,可以看看Martin Fowler在2014年发表的博客:点这里。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190573.html原文链接:https://javaforall.cn

相关推荐

狗狗歪头的 12 个原因:事实并非你所想
监控sh365下载

狗狗歪头的 12 个原因:事实并非你所想

📅 07-29 👁️ 6579
梦幻西游试剑石什么属性好
365bet滚球网

梦幻西游试剑石什么属性好

📅 08-07 👁️ 324
縈字成语接龙词大全,包含縈字的成语
监控sh365下载

縈字成语接龙词大全,包含縈字的成语

📅 09-05 👁️ 5868
货拉拉跑腿再开16城
365bet滚球网

货拉拉跑腿再开16城

📅 09-06 👁️ 2029
唱歌神器笔记
365bet滚球网

唱歌神器笔记

📅 08-06 👁️ 6141
一切尽在掌握!俄罗斯人笑了 这对手挑得真是太准
如何讓iPhone X進入和退出DFU模式
365bet滚球网

如何讓iPhone X進入和退出DFU模式

📅 10-06 👁️ 9435
剑网3无界发布!万花PVE攻略与技能搭配详解
365bet滚球网

剑网3无界发布!万花PVE攻略与技能搭配详解

📅 01-10 👁️ 4177
野钓鲻鱼有诀窍!4种不同钓法,下竿就上鱼!简单 粗暴 有效