为什么说java程序员必须掌握Spring Boot?


一、导言

2018年3月1日,Spring Boot 2.0.0.RELEASE的重磅发布又激起了一阵学习Spring Boot的热潮,那么,Spring诞生的背景是什么?Sring企业又是以怎样的方式创建了Spring Boot?相较于Spring家族传统框架,使用Spring Boot会给企业带来怎么样的变革?

带着这些问题,我们一起来了解一下Spring Boot的前世今生:

二、Spring历史

说起Spring Boot,我们不得不先了解一下Spring这个企业,不仅因为Spring Boot来源于Spring家族,而且Spring Boot的诞生和Spring框架的发展息息相关。

时间回到2002年,Java EE和EJB大行其道,很度知名公司都是采用此技术进行项目开发。此时一位来自美国的年轻人却认为EJB太过臃肿,这种大型框架对于中小型项目来说并不适用,应该可以有一种刚好的方式来解决这个问题。

为了证明自己的想法,2002年10,他写了《Expert One-on-One J2EE》一书,介绍了Java企业开发的现状,并指出了Java EE和EJB中存在的主要缺陷。在书中,他提出了一个基于普通Java类和依赖注入的更简单的解决方案。他就是Rod Johnson。在这本书发布后,一对一的J2EE设计和开发一炮而红。这本书提供了超过30000行的基础结构代码,并且大部分是高度可重用的。2003年Johnson团队在此框架的基础上开发了一个全新的框架命名为Spring,传统J2EE有了新的篇章。随后,Spring发展进入快车道:

  • 2004年03月,1.0版本发布;
  • 2006年10月,2.0版本发布;
  • 2007年11月,更名为SpringSourse,同时发布Spring2.5;
  • 2009年12月,Spring3.0版本发布;
  • 2013年12月,Pivotal宣布发布Spring4.0;
  • 2017年09月,Spring5.0版本发布。

三、Spring Boot的诞生与发展

随着Spring框架的普及和大量使用,Spring逐渐从一个简单一对一小框架变成一个大而全的开源软件,Spring的边界不断地进行扩充,到了后来Spring几乎可以满足任何Java开发需求了,市面上主流的开源软件、中间件都有Spring组件对应支持。就像每一个开源工具的发展一样,Spring也产生了自己的问题。

Spring每集成一个开源软件,就需要增加一些基础配置,随着人们开发的项目越来越庞大,需要集成的软件越来越多,因此Spring开发大型软件的配置越来越繁琐,人们甚至把Spring成为配置地狱!

在Spring问题不断和微服务概念不断兴起的交叉路口,Spring企业再一次把握住了机会,2013年成立Spring Boot研发小组,2014年4月,Spring Boot 1.0.0发布,Spring家族发展的又一春来临了。

从一开始的小众个人和企业尝试使用Spring Boot到2018年Spring Boot成为众多企业的开发首选,短短几年,Spring Boot逐渐占据了重要的市场地位。在得到市场的反馈后,Spring迅速果断反应,将Spring Boot作为公司最顶级的项目来推广,已经放到了官网第一的位置,Spring Boot的持续发展前景良好!

四、Spring Boot介绍

Spring Boot室友Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。Spring Boot整合了许多框架,是开发人员不再需要自定义配置。

Spring Boot简化了基于Spring的应用开发,通过少量代码就能创建一个独立的、产品级的Spring应用。Spring Boot的核心实现就是约定大于配置,Spring Boot只需要很少的Spring配置,大大地提高了开发效率。

五、Spring Boot特性及优点

  1. 能够快速创建基于Spring的应用程序;

  2. 能够直接使用java的main方法启动内嵌的Tomcat,Jetty服务器运行Spring boot程序,不需要部署war包文件;

  3. 提供约定的starter POM来简化来简化Maven配置,让Maven配置变得简单;

  4. 根据项目的maven依赖配置,Spring boot自动配置Spring,SpringMVC等其它开源框架;

  5. 自动管理依赖,自带应用监控;

  6. 支持关系数据库和非关系数据库;

  7. 支持各种IED,如IntelliJ IDEA、NetBeans;

Spring Boot的这些特性给我们的开发带来了很大的优势:

  • Spring Boot让开发环境搭建非常简单,Spring使测试变得更加简单;

Spring Boot开发只需两步,登录 start.spring.io/ 选择对应组件下载–>导入项目,直接开发;Spring Boot内置了7中强大的测试框架,满足各种测试需求。

  • Spring Boot让配置变得更加简单;

Spring Boot的核心实现约定优于配置,减少了软件开发开发人员需要配置的数量,减少了负担,又没有失去灵活性。

  • Spring Boot让部署变得更加简单;

Spring Boot内置容器的存在使开发人员不再需要很繁琐地配置Tomcat,不需要考虑容器地环境问题,只需要专心写业务代码。

  • Spring Boot让监控变得更加简单;

Spring Boot内置Spring Boot Actuator——集成应用系统监控功能,在此基础上还有一款专门地监控软件,Spring Boot Admin。Spring Boot Admin不仅可以监控Spring Boot项目,还可以监控Spring Cloud项目。

六、Spring、Spring Boot和Spring Cloud的关系

Spring最初最核心的两*大功能Spring IOC和Spring AOP成就了Spring,/*Spring在这两大核心的基础上不断发展,才有了Spring事务,Spring MVC等一系列伟大的产品,最终成就了Spring帝国。

Spring Boot是在强大的Spring帝国的生态基础上发展而来,创建Spring Boot并不是要取代Spring,而是为了让人们更方便地使用Spring进行软件开发。所以说没有Spring强大地功能和生态基础,就不会又后期Spring Boot地火热,Spring Boot使用约定优于配置地理念,重新构建了Spring地使用,让Spring后续地发展更有活力。

Spring Cloud是一系列框架地有序集合。它利用Spring Boot地开发便利性巧妙地简化了分布式系统基础设施地开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot地开发风格做到一键启动和部署。

综上所述,正是由于Spring IoC和Spring AOP两个强大地功能才有了Spring,Spring生态地不断发展才有了Spring Boot的诞生,使用Spring Boot让Spring展现了更加强大的生命力,Spring Cloud是基于Spring Boot开发的一套微服务架构下的服务治理方案。

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

总结

优雅、清楚、简单优于笨拙、含糊、复杂,这就是Spring Boot的核心竞争力!

猜你喜欢

转载自blog.csdn.net/qq_26356861/article/details/84367990