大部分人选择学习Java,自然是因为看上了Java的薪资待遇,java的地位可谓在编程界属于大佬,最近Spring Boot 2.0 的推出来后,又激起了一阵学习 Spring Boot 的热潮,那么, 使用 Spring Boot 会带来什么样的变革?一起来了解下 Spring Boot 到底是什么?

一、什么是 Spring Boot

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot 简化了基于 Spring Boot 为 Spring 平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。Spring Boot 的核心思想就是约定大于配置,多数 Spring Boot 应用只需要很少的 Spring 配置。采用 Spring Boot 可以大大的简化你的开发模式,所有你想集成的常用框架,它都有对应的组件支持。

二、Spring Boot 特性

1.Spring Boot 让开发变得更简单

Spring Boot 对开发效率的提升是全方位的,可以简单做一下对比,在没有使用 Spring Boot 之前开发一个 web 项目需要做哪些工作:

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

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

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

4)配置日志文件

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

可能你还需要考虑各个版本的兼容性,jar 包冲突的各种可行性。那么使用 Spring Boot 之后我们需要开发一个 web 项目需要哪些操作呢?

1)登录网址 选择对应的组件

2)导入项目,直接开发

上面的 N 步和下面的2步形成巨大的反差,这仅仅只是在开发环境搭建的这个方面,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 Test 中包含了我们需要使用的各种测试场景,满足我们日常项目的测试需求。

2.Spring Boot 让配置变得更简单

Spring Boot 让配置变简单,说到这里我们就需要了解一下 Spring Boot 的核心思想:约定优于配置。那么什么是约定优于配置呢?约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。本质是说,开发人员仅需规定应用中不符约定的部分。例如,如果模型中有个名为 User 的类,那么数据库中对应的表就会默认命名为 user。只有在偏离这一约定时,例如将该表命名为“user_info”,才需写有关这个名字的配置。

3.Spring Boot 让部署变得更简单

说起 Spring Boot 让部署变简单,就不得不说 Spring Boot 内嵌容器。内嵌容器不只让部署变得简单,其实在开发调试阶段也会带来非常大的便利性,对比以往开发 Web 项目时配置 Tomcat 的繁琐,会让大家使Spring Boot 内嵌容器开发时有更深的感触。使用 Spring Boot 开发 Web 项目,让我们不需要关心容器的环境问题,专心写业务代码即可。Jenkins 是目前持续构建领域使用最广泛的工具之一,Jenkins 是一个独立的开源自动化服务器,可用于自动化各种任务,如构建,测试和部署软件。Jenkins 可以通过本机系统包 Docker 安装,甚至可以通过安装 Java Runtime Environment 的任何机器独立运行。

说直白一点 Jenkins 就是专门来负责如何将代码变成可执行的程序包,将它部署到目标服务器中,并对其运营状态(日志)进行监控的软件。自动化、性能、打包、部署、发布、发布结果自动化验证、接口测试、单元测试等等关于我们打包测试部署的方方面面 Jenkins 都可以很友好的支持。使用 Jenkins 部署 Spring Boot 项目非常简单,只需要前期做一些简单的配置,当我们需要发布项目时只需要点击项目对应的发布按钮,就可以将项目从版本库中拉取、打包、发布到目标服务器中,大大简化了运维后期的部署工作。

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

4.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 应用程序的开源软件。每个应用都认为是一个客户端,通过 HTTP 或者使用 Eureka 注册到 admin server 中进行展示,Spring Boot Admin UI 部分使用 AngularJs 将数据展示在前端。

Spring Boot Admin 是一个针对 spring-boot 的 actuator 接口进行UI美化封装的监控工具。他可以:在列表中浏览所有被监控 spring-boot 项目的基本信息,详细的 Health 信息、内存信息、JVM 信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改 logger 的 level 。使用 Spring Boot Admin 不仅可以监控 Spring Boot 项目,还可以监控 Spring Cloud 项目,因此使用了 Spring Boot 项目之后我们监控 Spring Boot 集群效果如下:

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

为了让学习变得轻松、高效,今天给大家免费分享一套Java入门教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要入门的资料欢迎加入学习交流群:9285,05736

为什么说Java 程序员必须掌握 Spring Boot?相关推荐

  1. 作为一名Java程序员,这些Spring知识点面试官常考

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 丸纸 来源 | 极客时间 毋庸置疑,Spring 早已成为 Java 后端开发事实 ...

  2. net4.0 程序没反应_@Java程序员,精通Spring,你不得不知道的那些书

    程序员书库(ID:OpenSourceTop)编译 链接:https://www.whizlabs.com/blog/spring-framework-books/ Java是业界最著名的语言之一,不 ...

  3. java面试spring_针对Java程序员的二十大Spring REST面试问题答案

    java面试spring 大家好,过去两周来,我一直在与Spring教程共享一些REST,今天,我将向申请Web开发人员角色的Java开发人员共享一些常见的Spring和REST采访问题. 由于Spr ...

  4. java面试简历精通n_面试3年java程序员说精通spring源码 听完后觉得还是劝退好

    面试官:看你简历上写了读过Spring源码,是吗? 我: 是的 面试官:读过哪些部分的? 我:读过Spring的启动过程源码,比如扫描包.执行Bean工厂后置处理器.Bean的生成过程等(自信满满) ...

  5. Spring AOP注解为什么失效?90%Java程序员不知道

    转载自 Spring AOP注解为什么失效?90%Java程序员不知道 使用Spring Aop注解的时候,如@Transactional, @Cacheable等注解一般需要在类方法第一个入口的地方 ...

  6. AJPFX浅谈关于Java程序员缺乏面向对象的基本功的问题

    为什么很多 Java 程序员会缺乏面向对象基本功?这得怪那些 Java 框架.现在 Java 的各种框架太发达.太傻瓜化了,导致很多程序员只需要按部就班.照着框架进行代码填空,基本已经丧失了 OOA ...

  7. 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?

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

  8. Java程序员进阶——Spring依赖注入原理分析

    Spring依赖注入原理分析 下面谈谈Spring是如何实现反转模式IOC或依赖注入模式DI: 平时,我们需要生成一个对象,使用new语法,如一个类为A public class A{public v ...

  9. 面向Java程序员的20大Spring REST面试问题答案

    大家好,过去两周来,我一直在与Spring教程共享一些REST,今天,我将向申请Web开发人员角色的Java开发人员共享一些常见的Spring和REST面试问题. 由于Spring Framework ...

最新文章

  1. mSystem:西农韦革宏组细菌-真菌互作影响微生物多样性-土壤养分循环关系
  2. 大写的服!90 后程序员利用业余时间帮网友鉴定毒蘑菇,拥有百万粉丝成网络大 V...
  3. python写小程序-用python编写一个闹钟小程序
  4. 并发编程-01并发初窥
  5. Java 代码细节与优化(一)
  6. 二分查找算法(递归与非递归两种方式)
  7. Codeforces626B - Cards【模拟】
  8. CSS3技巧 —— 渐变
  9. 如何判断车与路边线距离_一声惊雷!开车怎么判断轮胎的位置呢?驾校教练:简单一招就能看到位置!...
  10. input type=file accept中可以限制的文件类型
  11. 【Python】EXCEL转Json
  12. matlab找不到vs编译器
  13. 哈佛大学有没有计算机专业,美国哈佛大学计算机专业课程有哪些?
  14. 撤销 git commit操作
  15. 关于色环电阻的读数和功率
  16. 凯西与拜耳将在中国共同推广呼吸药物宝丽亚和启尔畅
  17. 多目标跟踪(MOT,Multiple Object Tracking)评价指标
  18. 晶振串联电阻与并联电阻的作用
  19. 服装内部条码和服装国标码的区别
  20. LeetCode笔记:526. Beautiful Arrangement

热门文章

  1. 实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)
  2. linux的基础知识——CS模型流程图
  3. 牛客网--字符串合并处理(Java)
  4. php封装webservice_四种php中webservice实现的简单架构方法及实例
  5. java 设置头错误信息,错误:在node.js中发送标头后无法设置标头
  6. php显示动态通告信息方式,Joomla PHP通知,警告和错误指南
  7. matlab显示曲线图中某个点的坐标值
  8. OpenCV与图像处理学习六——图像形态学操作:腐蚀、膨胀、开、闭运算、形态学梯度、顶帽和黑帽
  9. 精益创业~如何驾驭愿景
  10. java.security.InvalidKeyException: Illegal key size