凭借开箱即用,远离繁琐的配置等特性,Spring Boot 已经成为 Java 开发者人人必学必会的开源项目。那么开发者该如何快速上手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的体验则完全不一样,基本是“开箱即用”。

1.1 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、Spring Boot、Spring Cloud的关系

2.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.2 Spring Boot

Spring Boot是Spring框架的扩展和自动化,它消除了在Spring中需要进行的XML(EXtensible Markup Language)文件配置(若习惯XML配置,则依然可以使用),使得开发变得更快、更高效、更自动化。

2.3 Spring Cloud

Spring Cloud是一套分布式服务治理框架,它本身不提供具体功能性的操作,只专注于服务之间的通信、熔断和监控等。因此,需要很多组件来共同支持一套功能。Spring Cloud主要用于开发微服务。

微服务是可以独立部署、水平扩展、独立访问的服务单元。Spring Cloud是这些微服务的“CTO(Chief Technical Officer)”,它提供各种方案来维护整个生态。

2.4 三者的关系

从上面对三者的介绍中可以看出,Spring Boot其实是要依赖Spring的,并不是另起炉灶创建了一个全新的框架,它是Spring的自动化。Spring Cloud通过依赖Spring Boot来构建微服务应用。三者的关系如图1-1所示。

图1-1  Spring、Spring Boot、Spring Cloud的依赖关系

Spring Boot的特色

3.1 使用简单

Spring Boot支持用注解的方式轻松实现类的定义与功能开发、无代码生成和XML配置,新手入门极易上手。

3.2 配置简单

Spring Boot根据在类路径中的JAR和类自动配置Bean(豆子的意思,可以将其理解为Java类。Java的名字来源于程序员经常喝的一种咖啡“爪哇”。这种咖啡是用“爪哇豆”磨出来的。所以,他们用“豆”来命名类。Java语言中的许多库类名称,多与咖啡有关,如咖啡豆——JavaBeans、网络豆——NetBeans和对象豆——ObjectBeans),能自动完成大量配置。同时,还支持用自定义的方式来配置。

3.3 提供大量Starter简化配置

Spring Boot提供了大量的Starter来简化依赖配置。例如,如果要使用Redis,则只需在pom.xml文件中加入操作Redis的Starter依赖“spring-boot-starter-data-redis”,然后Spring Boot会自动加载相关依赖包,并提供Redis的操作API(Application Programming Interface,应用程序编程接口)。

3.4 部署简单

Spring Boot可以在具备JRE(Java运行环境)的环境中独立运行,它内置了嵌入式的Tomcat、Jetty、Netty等Servlet(Server Applet)容器,项目不用被打包成WAR格式,可以直接以JAR包的方式运行。

3.5 与云计算天然集成

非常流行的微服务开发框架Spring Cloud也是基于Spring Boot实现的。

3.6 监控简单

它提供了一整套的监控、管理应用程序状态的功能模块,包括监控应用程序的线程信息、内存信息、应用程序健康状态等。

为了方便读者们学习Spring Boot,CSDN最新一期线上分享邀请到龙中华老师为大家直播分享《Spring Boot高效入门实战》,欢迎大家关注学习。

分享主题:“Spring Boot高效入门实战”

嘉宾简介:龙中华

著有《Spring Boot实战派》(被台湾地区引进)、《Spring Cloud实战派》、《Flink实战派》。10多年来一直在某一线互联网公司担任资深技术负责人。目前带领多个研发团队,承担系统的需求分析、架构设计、项目管理,以及技术团队管理和培训等职责。

扫码进入直播间????????

点击阅读原文,直达现场~

Spring Boot 高效入门实战相关推荐

  1. Spring Boot单元测试入门实战之关于JUnit

    在我们开发Web应用时,经常会直接去观察结果进行测试.虽然也是一种方式,但是并不严谨. 作为开发者编写测试代码来测试自己所写的业务逻辑,以提高代码的质量.降低错误方法的概率以及进行性能测试等.而开发者 ...

  2. Spring Boot应用监控实战

    概述 之前讲过Docker容器的可视化监控,即监控容器的运行情况,包括 CPU使用率.内存占用.网络状况以及磁盘空间等等一系列信息.同样利用SpringBoot作为微服务单元的实例化技术选型时,我们不 ...

  3. Spring Boot 揭秘与实战(二) 数据缓存篇 - EhCache

    文章目录 1. EhCache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 EhCache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门 ...

  4. spring boot(一)入门

    目录 spring boot(一)入门 一.简介 1.微服务的概念 2.什么是spring boot 3.快速入门 4.springboot的快捷部署 spring boot(一)入门 一.简介 1. ...

  5. springboot做网站_Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐!

    " 本文已经收录进:awesome-java (Github 上非常棒的 Java 开源项目集合) 很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Bo ...

  6. Spring Boot 揭秘与实战(二) 数据缓存篇 - Guava Cache

    本文,讲解 Spring Boot 如何集成 Guava Cache,实现缓存. 博客地址:blog.720ui.com/ 在阅读「Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门」 ...

  7. Spring Boot从入门到精通(超详细)

    Spring Boot从入门到精通(超详细) _kayden_ 2020-07-20 15:19:22 9491 正在上传-重新上传取消​ 收藏 184 分类专栏: springboot 文章标签:  ...

  8. Java Spring Boot 2.0实战Docker容器与架构原理,视频与课件,基于Linux环境...

    Java Spring Boot 2.0实战Docker容器Linux与架构原理 内容摘要:Docker是最流行的开源容器引擎,Go语言开发,在互联网大规模集群.云计算.微服务等架构中广泛使用.本次课 ...

  9. 热烈庆祝《Spring Boot 2.X 实战教程》上线了!

    视频地址:https://edu.csdn.net/course/detail/25550 l 机构名称:大华软件学院  l 授课讲师:大强老师 l 课程名称:Spring Boot 2.X 实战教程 ...

最新文章

  1. WinCE的C#编程,对float型进行四舍五入保留两位小数,小数进行四舍五入操作,Math.Round的应用案例。...
  2. redis搭建与安装2
  3. Matlab中函数使用
  4. numpy学习2:数组创建方式
  5. RabbitMQ配置环境变量后启动不了的解决方法
  6. 数据表_业务地址(Business Address)信息
  7. python networkx使用案例_在有向图networkx的大型网络实例上,什么是最快的迭代?...
  8. 如何防止线程死锁java_Java 并发编程:如何防止在线程阻塞与唤醒时死锁
  9. ActiveMQ入门教程(一) - JMS和ActiveMQ简介
  10. Kafka连接SparkStreaming的两种方式
  11. 系统辨识总论(System Identification)
  12. java多文件代码在线运行网站
  13. 数据分析模型 第九章
  14. 【递归入门】走迷宫(c++)
  15. React-滑条组件使用
  16. Java 去除字符串中的空白字符
  17. 使用新浪微博登录组件
  18. Unity WebGL 打包il2cpp.exe did not run properly!
  19. Patch:虚拟DOM最核心的部分--如何对比虚拟DOM树,以及如果生成真实DOM
  20. CAP原理以及选取的场景

热门文章

  1. 语义分割之Deeplabv3源码解读
  2. 敏捷开发“松结对编程”系列之七:问题集之一
  3. Log4J基础详解及示例大全
  4. python 3.28 第三章 函数嵌套/名称空间//内置名称空间/全局名称空间/局部名称空间/作用域/函数对象/闭包函数。...
  5. locky勒索样本分析
  6. linux locate
  7. sklearn训练模型、保存模型文件(文本、pkl)、模型文件转换(pkl2onnx)以及模型可视化
  8. java core 作者_java core dump分析实战
  9. 不同模块下包重名怎么解决_注册公司核名通不过,疑难核名有办法解决吗?
  10. 实时视频流(url)——延时显示