带你进入Spring Boot世界
▊ 进入Spring Boot世界
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框架的扩展和自动化。
1.Spring
Spring框架(为解决企业应用开发的复杂性而创建的框架)为开发Java应用程序提供了全面的基础架构支持。它提供了依赖注入和“开箱即用”的一些模块,如:Spring MVC、Spring JDBC、Spring Security、Spring AOP、Spring IoC、Spring ORM、Spring Test。这些模块大大地缩短了应用程序的开发时间,提高了开发应用程序的效率。
在Spring出现之前,如果要进行Java Web开发,则非常复杂,例如,若需要将记录插入数据库,则必须编写大量的代码来实现打开、操作和关闭数据库。而通过使用Spring JDBC模块的JDBCTemplate,只需要进行数据操作即可,打开和关闭交由Spring管理。而且实现这些数据操作只需要配置几行代码。
2.Spring Boot
Spring Boot是Spring框架的扩展和自动化,它消除了在Spring中需要进行的XML(EXtensible Markup Language)文件配置(若习惯XML配置,则依然可以使用),使得开发变得更快、更高效、更自动化。
3.Spring Cloud
Spring Cloud是一套分布式服务治理框架,它本身不提供具体功能性的操作,只专注于服务之间的通信、熔断和监控等。因此,需要很多组件来共同支持一套功能。Spring Cloud主要用于开发微服务。
微服务是可以独立部署、水平扩展、独立访问的服务单元。Spring Cloud是这些微服务的“CTO(Chief Technical Officer)”,它提供各种方案来维护整个生态。
4.三者的关系
从上面对三者的介绍中可以看出,Spring Boot其实是要依赖Spring的,并不是另起炉灶创建了一个全新的框架,它是Spring的自动化。Spring Cloud通过依赖Spring Boot来构建微服务应用。三者的关系如下图所示。
▊ Spring Boot的特色
1.使用简单
Spring Boot支持用注解的方式轻松实现类的定义与功能开发、无代码生成和XML配置,新手入门极易上手。
2.配置简单
Spring Boot根据在类路径中的JAR和类自动配置Bean(豆子的意思,可以将其理解为Java类。Java的名字来源于程序员经常喝的一种咖啡“爪哇”。这种咖啡是用“爪哇豆”磨出来的。所以,他们用“豆”来命名类。Java语言中的许多库类名称,多与咖啡有关,如咖啡豆——JavaBeans、网络豆——NetBeans和对象豆——ObjectBeans),能自动完成大量配置。同时,还支持用自定义的方式来配置。
3.提供大量Starter简化配置
Spring Boot提供了大量的Starter来简化依赖配置。例如,如果要使用Redis,则只需在pom.xml文件中加入操作Redis的Starter依赖“spring-boot-starter-data-redis”,然后Spring Boot会自动加载相关依赖包,并提供Redis的操作API(Application Programming Interface,应用程序编程接口)。
4.部署简单
Spring Boot可以在具备JRE(Java运行环境)的环境中独立运行,它内置了嵌入式的Tomcat、Jetty、Netty等Servlet(Server Applet)容器,项目不用被打包成WAR格式,可以直接以JAR包的方式运行。
5.与云计算天然集成
非常流行的微服务开发框架Spring Cloud也是基于Spring Boot实现的。
6.监控简单
它提供了一整套的监控、管理应用程序状态的功能模块,包括监控应用程序的线程信息、内存信息、应用程序健康状态等。
▼
为了方便读者们学习Spring Boot,CSDN最新一期线上分享邀请到龙中华老师为大家直播分享“Spring Boot高效入门实战”,欢迎大家关注学习。
分享主题:Spring Boot高效入门实战
嘉宾简介:龙中华
著有《Spring Boot实战派》(被台湾地区引进)、《Spring Cloud实战派》、《Flink实战派》。10多年来一直在某一线互联网公司担任资深技术负责人。目前带领多个研发团队,承担系统的需求分析、架构设计、项目管理,以及技术团队管理和培训等职责。
直播时间:3月30日(星期二)晚8点
直播入口:https://bfw.h5.xeknow.com/s/3KwHxy(或点击文末阅读原文)
分享摘要:畅销书《Spring Boot实战派》作者龙中华老师讲解如何快速入门Spring Boot,掌握Spring Boot学习方法论。通过实战案例带你快速上手,知晓Spring Boot面试技术点和加分项,做到技术突飞猛进。
热文推荐