什么是SpringBoot?
Java(面向对象编程语言)经过30多年的发展,产生了非常多的优秀框架。Spring(为解决企业应用程序开发的复杂性而创建的框架)曾是最受欢迎的Java框架之-,但随着Node、Ruby、Groovy、PHP等脚本语言的蓬勃发展,使用Spring开发应用就显得烦琐了,因为它使用了大量的XML配置文件,配置烦琐,整合不易,开发和部署效率低下。这时急切需要一种新的能解决这些问题的快速开发框架,于是PivotalSoftware公司在开始了SpringBoot的研发。
SpringBoot的设计初衷是解决Spring各版本配置工作过于繁重的问题,简化初始搭建流程、降低开发难度,使开发人员只需要专注应用程序的功能和业务逻辑实现,而不用在配置上花费太多时间。
SpringBoot使用“默认大于配置”的理念,提供了很多已经集成好的方案,以便程序员在开发应用程序时能做到零配置或极简配置。同时,为了不失灵活性,它也支持自定义操作。
过去经常会有这样的一-种场景:-一个初学者花了半个月时间,看了几本Spring编程书,掌握了最基本的理论知识,但在实际着手开发时,往往被拦截在初始环境配置上,可能花上几天时间也配置不好环境。
笔者曾经就遇到一个这样的开发人员,他竟然花费了一个月时间也没配置好初始环境。这是难以想象的,面对这种烦琐、效率低下的配置和开发工作,甚至会让人怀疑自己的能力。这最终让人非常痛苦,不少人会痛苦地放弃,而能坚持下来的开发人员在开发新项目时依然会面临大量烦琐的配置工作。而使用SpringBoot的体验则完全不--样,基本是“开箱即用”。
SpringBoot应用程序的开发流程
(1)安装JDK(JavaDevelopmentKit)开发环境和IDE工具(如:Eclipse、IDEA)。
(2)在开发工具中,通过项目管理软件Maven(或Gradle)来构建和管理项目。
要使用某个JAR(JavaARchive)包,只需要直接在pom.xml(Gradle项目则是build.gradle)文件中按照约定格式编写,Maven会自动从仓库中下载并配置JAR包依赖,随后可以直接在类中使用它提供的方法。
SpringBoot内置了50多种Starter,以便快速配置和使用。比如,要使用Email服务,只需要添加“spring-boot-starter-mail依赖,然后直接调用JavaMailSender接口发送邮件。
(3)在开发过程中,可以直接在IDE工具中运行和测试,而且不需要搭建Tomcat服务器环境,因为SpringBoot已经内置好了。
(4)在开发完成后,用IDE工具将程序直接编译成JAR包,即可直接在Java运行环境JRE(JavaRuntimeEnvironment)下独立运行。如果要在特定的或多环境下部署运行程序,也可以将其打包成WAR(Web存档文件,包含Web应用程序的所有内容)包。
可见,SpringBoot帮我们省去了烦琐的配置工作,开发人员只需要专注业务逻辑开发即可。
用一句话来说明,即SpringBoot是Spring框架的扩展和自动化。
SpringBoot发展史
年10月,MikeYoungstrom提出要在Spring框架中支持无容器的Web应用程序体系结构的要求,这个要求促使PivotalSoftware公司在年年初开始研发SpringBoot项目。经过1年多的研发,SpringBoot的第1个版本于年发布,后续完成了多次的版本迭代。SpringBoot版本的更新情况如下:
年4月,SpringBoot1.0.0发布。年6月,SpringBoot1.1发布。年3月,SpringBoot1.2发布。年12月,SpringBoot1.3发布。年1月,SpringBoot1.4发布。年2月,SpringBoot1.5发布。.年3月,SpringBoot2.0发布。,年11月,SpringBoot2.1发布。年3月15日,SpringBoot2.2.M发布。Spring、SpringBoot、SpringCloud的关系
Spring
Spring框架(为解决企业应用开发的复杂性而创建的框架)为开发Java应用程序提供了全面的基础架构支持。它提供了依赖注入和“开箱即用”的一些模块,如:SpringMVC、SpringJDBC、SpringSecurity、SpringAOP、SpringloC、SpringORM、SpringTest。这些模块大大地缩短了应用程序的开发时间,提高了开发应用程序的效率。
在Spring出现之前,如果要进行JavaWeb开发,则非常复杂,例如,若需要将记录插入数据库,则必须编写大量的代码来实现打开、操作和关闭数据库。而通过使用SpringJDBC模块的JDBCTemplate,只需要进行数据操作即可,打开和关闭交由Spring管理。而且实现这些数据操作只需要配置几行代码。
SpringBoot
SpringBoot是Spring框架的扩展和自动化,它消除了在Spring中需要进行的XML(EXtensibleMarkupLanguage)文件配置(若习惯XML配置,则依然可以使用),使得开发变得更快、更高效、更自动化。
SpringCloud
SpringCloud是一套分布式服务治理框架,它本身不提供具体功能性的操作,只专注于服务之间的通信、熔断和监控等。因此,需要很多组件来共同支持一套功能。SpringCloud主要用于开发微服务。
微服务是可以独立部署、水平扩展、独立访问的服务单元。SpringCloud是这些微服务的“CTO(ChiefTechnicalOfficer),它提供各种方案来维护整个生态。
三者的关系
从上面对三者的介绍中可以看出,SpringBoot其实是要依赖Spring的,并不是另起炉灶创建了一个全新的框架,它是Spring的自动化。SpringCloud通过依赖SpringBoot来构建微服务应用。三者的关系如图所示。
以上内容只是这本SpringBoot学习笔记中的冰山一角(第一章第一节的前两部分)
笔记全目录
第1章进入SpringBoot
第2章准备开发环境
第3章使用开发工具
第4章SpringBoot基础
第5章分层开发Web应用程序
第6章响应式编程
第7章SpringBoot进阶
第8章用ORM操作SQL数据库
第9章接口架构风格RESTful
第10章集成安全框架,实现安全认证和授权
第11章集成Rods,实现高井发
第12章集成RbuQ,实现系统间的数据交换
第13章集成NoSQL数据库,实现搜索引擎
第14章开发企业级通用的后台系统
第15章实现一个类似“京东”的电子商务商城
有需要获取到SpringBoot学习笔记的朋友: