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