作者:纯洁的微笑(真名:张强),高级 Java 工程师、架构师,GitChat 畅销课程作者。曾从零参与公司技术平台建设,组织平台进行过四次大架构升级。目前在一家第三方支付公司做技术总监,负责微服务架构实践和大数据平台建设。

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 Spring Boot 简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。

作为一名 Java 程序员如果你已经厌恶了传统的开发模式,希望有一个全新的框架可以提供快速开发,简单集成的编程体验,强烈建议你学习了解 Spring Boot 。Spring Cloud 未来随着 Kubernetes 和 Service Mesh 的发展可能会有所弱化,但是 Spring Boot 给开发带来的影响是深远的。

Spring Boot 的诞生

随着 Spring 集成的软件越来越多,Spring 也慢慢从一个单一简洁的小框架变成一个大而全的开源软件,Spring 的边界不断的进行扩充,到了后来 Spring 几乎可以做任何事情了,市面上主流的开源软件、中间件都有 Spring 对应组件支持,人们在享用 Spring 的这种便利之后,也遇到了一些问题。

Spring 每集成一个开源软件,就需要增加一些基础配置,慢慢的随着人们开发的项目越来越庞大,往往需要集成很多开源软件,因此后期使用 Spring 开发大型项目需要引入很多配置文件,太多的配置非常难以理解,并容易配置出错,到了后来人们甚至称 Spring 为配置地狱。

Spring 似乎也意识到了这些问题,急需有这么一套软件可以解决这些问题,这个时候微服务的概念也慢慢兴起,快速开发微小独立的应用变得更为急迫,Spring 刚好处在这么一个交叉点上,于 2013 年初开始的 Spring Boot 项目的研发,2014年4月,Spring Boot 1.0.0 发布。

上图为2014年到2018年 Spring Boot 的百度指数,可以看出 Spring Boot 2.0 的推出引发了搜索高峰。

Spring Boot 不是为了取代 Spring ,Spring Boot 基于 Spring 开发,是为了让人们更容易的使用 Spring。看到 Spring Boot 的市场反应,Spring 官方也非常重视 Spring Boot 的后续发展,已经将 Spring Boot 作为公司最顶级的项目来推广,放到了官网上第一的位置,因此后续 Spring Boot 的持续发展也被看好。

使用 Spring Boot 的优势

Spring Boot 让开发变得更简单

Spring Boot 对开发效率的提升是全方位的,我们可以简单做一下对比:

在没有使用 Spring Boot 之前我们开发一个 web 项目需要做哪些工作:

1)配置 web.xml,加载 Spring 和 Spring mvc

2)配置数据库连接、配置 Spring 事务

3)配置加载配置文件的读取,开启注解

4)配置日志文件

n) 配置完成之后部署 tomcat 调试

可能你还需要考虑各个版本的兼容性,jar 包冲突的各种可行性。

那么使用 Spring Boot 之后我们需要开发一个 web 项目需要哪些操作呢?

1)登录网址 http://start.spring.io/ 选择对应的组件直接下载

2)导入项目,直接开发

上面的 N 步和下面的2步形成巨大的反差,这仅仅只是在开发环境搭建的这个方面。

Spring Boot 使测试变得更简单

Spring Boot 对测试的支持不可谓不强大,Spring Boot 内置了7种强大的测试框架:

  • JUnit: 一个 Java 语言的单元测试框架

  • Spring Test & Spring Boot Test:为 Spring Boot 应用提供集成测试和工具支持

  • AssertJ:支持流式断言的 Java 测试框架

  • Hamcrest:一个匹配器库

  • Mockito:一个 java mock 框架

  • JSONassert:一个针对 JSON 的断言库

  • JsonPath:JSON XPath 库

我们只需要在项目中引入spring-boot-start-test依赖包,就可以对数据库、Mock、 Web 等各种情况进行测试。

Spring Boot 让配置变得更简单

Spring Boot 让配置变简单,说到这里我们就需要了解一下 Spring Boot 的核心思想:约定优于配置。那么什么是约定优于配置呢?约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。

本质是说,开发人员仅需规定应用中不符约定的部分。例如,如果模型中有个名为 User 的类,那么数据库中对应的表就会默认命名为 user。只有在偏离这一约定时,例如将该表命名为"user_info",才需写有关这个名字的配置。

Spring Boot 体系将约定优于配置的思想展现得淋淋尽致,小到配置文件,中间件的默认配置,大到内置容器、生态中的各种 Starters 无不遵循此设计规则。Spring Boot 鼓励各软件组织方创建自己的 Starters ,创建 Starter 的核心组件之一就是 autoconfigure 模块,也是 Starter 的核心功能就是在启动的时候进行自动装配,属性默认化配置。

Spring Boot 让部署变得更简单

说起 Spring Boot 让部署变简单,就不得不说 Spring Boot 内嵌容器。内嵌容器不只让部署变得简单,其实在开发调试阶段也会带来非常大的便利性,对比以往开发 Web 项目时配置 Tomcat 的繁琐,会让大家使用 Spring Boot 内嵌容器开发时有更深的感触。使用 Spring Boot 开发 Web 项目,让我们不需要关心容器的环境问题,专心写业务代码即可。

但内嵌容器对部署带来的改变其实更多,现在 Maven 、Gradle 已经成了我们日常开发必不可少的构建工具,使用这些工具很容易的将项目打包成 Jar 或者 War 包,在服务器上我们仅仅只需要一条命令就可以启动项目。Spring Boot 支持在启动的时候添加定制,比如设置应用的堆内存、垃圾回收机制、日志路径等等。

虚拟化技术的发展给我们带来了更多的可能性,我们可以利用容器化技术,将 Spring Boot 项目做成镜像,根据容器集群的策略来实现弹性扩容、动态部署等。所以 Spring Boot + Docker + Jenkins 会将 Spring Boot 项目的部署做得更简单化、智能化。

Spring Boot 让监控变得更简单

可以说 Spring Boot 就是一款自带监控的开源软件,在设计之初就考虑到应用的监控问题,专门提供了一款监控组件来完成这个工作,这个组件就是 Spring Boot Actuator 。Spring Boot Actuator 是 Spring Boot提供的对应用系统监控的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的 Spring beans 以及一些环境属性等。

当然 Spring Boot Actuator 虽然可以监控一个 Spring Boot 应用的健康情况,实际上现在的系统都是需要很多的服务相互配合来完成工作,如何通过一个监控软件来监控所以的 Spring Boot 项目将变得比较紧迫。在开源界也有人意识到了这个问题,并且基于 Spring boot actuator 做出了一款强大的监控软件,这个软件就是 Spring Boot admin 。

使用 Spring Boot Admin 不仅可以监控 Spring Boot 项目,还可以监控 Spring Cloud 项目,因此使用了 Spring Boot 项目之后我们监控 Spring Boot 集群效果如下:

简单、直观、易用是它的特点,针对一些特殊情况还可以提供报警服务。所以说使用 Spring Boot Actuator 解决了单个 Spring Boot 的监控问题,使用 Spring Boot Admin 就是解决了整个集群监控的问题。

课程推荐

如今微服务架构已经慢慢成为了互联网架构的主流,Spring Boot 正是这股潮流的主先锋。Spring Boot 和微服务架构都是未来软件开发的一个大趋势,越早参与其中受益越大。但是目前网络上关于 Spring Boot 2.0 的各种资料质量参差不齐,这给初学者带来了很大的困扰。

因此作者(纯洁的微笑,第三方支付公司技术总监)将结合两年多两家公司的 Spring Boot 实践经验,将其中工作中最常用、最具实战代表性的一些内容重新整理出来,以 GitChat 精品课的形式来展现。课程也增加了实战项目的内容,让你亲自体会如何使用 Spring Boot 技术栈进行快速开发,并且可以很快的应用在工作中。

本课程共包含五大部分,由浅入深的讲解了 Spring Boot 技术栈的使用场景和实践方式:

  • PART 1:从零开始认识 Spring Boot;

  • PART 2:项目中最常用的 Web 相关技术;

  • PART 3:Spring Boot 和数据库的技术实践;

  • PART 4:Spring Boot 如何集成 MQ、缓存、NoSQL 等中间件;

  • PART 5:综合实践。

认真学完这个课程后,将会对 Spring Boot 有进一步的了解,具备使用 Spring Boot 上手进行开发的基本能力。

欢迎扫描二维码,或点击“原文链接”报名课程。

为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?相关推荐

  1. 为什么说 java 程序员到了必须入手 spring boot 的时候?

    随着互联网的不断发展,企业对于程序员的能力要求以及开发工作效率要求也在不断的提高,下面我们就一起来了解一下,为什么说java程序员需要掌握SpringBoot开发技术. SpringBoot是由Piv ...

  2. Spring Boot学习总结(16)——为什么说Java程序员到了必须掌握Spring boot的时候了?

    分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热, ...

  3. erp开发和java开发区别_Java程序员求职必学:Spring boot学习指南!

    黑马程序员上海中心 学姐微信:CZBKSH 关注 咳咳,今天学姐就来和你们说说Spring对于Java程序员的重要性. 首先,Spring 官网首页是这么介绍自己的--"Spring: th ...

  4. springboot实战pdf_Java程序员中秋节福利发送:Spring boot+Redis实战文档「PDF」

    中秋节越来越近了,平日里,各大公司拼员工拼技术拼实力:到了节日,则要拼奖金.拼福利.拼假期,还要拼创意.今天,小编为大家也准备了一份中秋节礼物,让我们一起来看看礼物是啥吧! Spring boot文档 ...

  5. 作为一名合格的JAVA程序员需要点亮那些技能树?

    转自:https://zhuanlan.zhihu.com/p/26035486 先看看这些程序员技能树,你掌握或了解哪些?OMG竟然有么多---震精!震精!!! 这是从450家企业的招聘信息中统计而 ...

  6. 2020年Java程序员不得不学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  7. Java程序员三年的工作经验,却不如一个新人的工资高???

    文章目录 一.关于程序员的几个阶段 第一阶段:三年 第二阶段:五年 第三阶段:十年 二.关于项目经验 三.关于专业技能 1.基本语法 2.集合 3.设计模式 4.多线程 5.JDK源码 6.框架 7. ...

  8. java程序员遇到的问题_Java 程序员平时最常遇到的故障:系统OOM (一)

    作为 Java 程序员而言,先不考虑自己系统外部依赖的缓存.消息队列.数据库等等东西挂掉,就我们自己系统本身而言,最常见的挂掉的原因是什么? 其实就是系统OOM,也就是所谓的内存溢出! 什么是内存溢出 ...

  9. java程序员入门先学什么开发者工具

    学习java编程语言,那么开发工具是肯定少不了的,程序员入门基础中开发工具是一定要学会的,可以帮助开发者们提高开发效率.更优雅的写代码.由于开发者涉及的技术领域众多,以后端开发者的视角盘点平时可能用得 ...

最新文章

  1. CV02-FCN笔记
  2. [sh]shell案例
  3. Java类类的getDeclaringClass()方法和示例
  4. 域名劫持到百度被黑详解DNS技术
  5. 推荐系统系列教程之十二:Facebook是怎么为十亿人互相推荐好友的?
  6. 分布式链路追踪(Sleuth、Zipkin)
  7. docker python3环境搭建
  8. 阶段3 1.Mybatis_08.动态SQL_03.mybatis中动态sql语句-foreach和sql标签
  9. ps6人脸识别液化工具在哪_ps液化工具在哪
  10. explorer.exe修复工具官方版-explorer.exe修复工具下载安装
  11. 学python必须得英语精通吗_Python无用武之地?只能说你是真的没有精通Python语言(附教程)...
  12. 手机上那些排版优雅的文章是怎么实现的?
  13. python实现电话号码映射
  14. Tita绩效宝:通过组织透明度提高绩效
  15. 多任务-协程(01-迭代器)
  16. 谈一谈|多处引用文献解决办法
  17. omv 网站服务器,折腾篇 篇一:小白也爱折腾 篇一:N1全小白装NAS(omv)
  18. S7-1200通过MODBUS转PROFINET网关控制英威腾GD200A变频器的具体方法示例
  19. 电视剧保姆剧情详细介绍
  20. wdcp 如何创建用IP就可以访问的默认站点/修改默认站点

热门文章

  1. mongo 创建索引_索引系列:2dsphere索引
  2. python人脸识别项目_基于Python与命令行人脸识别项目(系列二)
  3. dp背包九讲(待补充,暂时前两讲)
  4. poj3683(2-SAT)
  5. matlab图片插值数据_使用双线性插值法放大图像(matlab实现)
  6. 打包、压缩、文件查找、通配符
  7. java 中的 serialVersionUID
  8. gDebugger 3.1.1 原版+破解
  9. CentOS 7 yum安装Zabbix
  10. HBase存储剖析与数据迁移