转载

SpringBoot笔记(一)为什么用SpringBoot

写下本文的初衷,是记录我对SpringBoot的一些理解

用一句话介绍SpringBoot

SpringBoot是一个基于Spring Framework的快速开发框架,SpringBoot可以简化Spring应用的搭建过程、开发过程,提高开发人员的开发效率。

SpringBoot的功能与作用(摘自百科)

  1. 独立创建Spring应用,生成可执行的jar包或者war包。
  2. 内嵌Tomcat、Jetty等Servlet容器,简化部署过程。
  3. 提供大量的官方起步依赖(starter),可以自动配置Spring应用需要的bean,从而减少大量的配置类、xml配置文件,减少开发工作量。
  4. 不需要xml配置文件,不需要注解,不需要配置类,就能独立运行一个Spring项目。这一点是基于3实现的。
  5. 尽可能的自动配置。
  6. 提供了监控Spring应用运行时状态的断点。
  • 此处我的看法:SpringBoot的最核心作用:通过自动配置,简化开发过程。

SpringBoot流行的原因

在我看来,一个技术能不能大规模的运用,有以下几个因素。

  1. 这个技术能解决什么问题,这个问题是不是痛点。
  2. 这个技术功能强不强,用起来方不方便。
  3. 引入这个技术需要什么成本,会给现状带来什么影响。
  4. 这个技术是谁提供的,有什么背景,背后有什么生态。
  • 言外之意,功能强大、使用简单(用起来麻烦的请走开)、能解决实际痛点问题(屠龙之术没用、脱离实际的高大上也没用)、使用成本低(开源免费)、背景要好(要大公司搞出来的,要技术实力强的团队搞出来的)、生态繁荣(别让我自己造轮子)。

可以说,SpringBoot完全符合上述的要求,原因如下。

  1. 在SpringBoot推出之前,开发者通过maven搭建一个Spring应用,需要知道依赖的版本,需要知道组件相关的依赖有哪些,需要写xml或者配置类,来声明使用的bean。依赖和依赖之间的版本一旦发生冲突,对开发者来说就头疼了。大量的xml配置文件和配置类,对于新手来说学习成本大了,对老手来说耗费时间。也就是说,SpringBoot确实解决了痛点问题。

  2. SpringBoot有2个潜规则,是约定大于配置、开箱即用。其实这也是Spring Framework的特点,只是SpringBoot更进一步。

  • 我举个例子说明什么是开箱即用。假如我们需要使用redis,只需要在pom文件引入redis-starter的依赖,不需要关心redis-spring的版本,不需要配置redis组件使用的bean,就能直接用RedisTemplate操作redis数据库了。当然了,redis的url、port等信息还是要写的,毕竟代码不是神仙,算不出来redis实例部署在哪里。

  • 再举个例子说明什么是约定大于配置。当我们自定义一个starter时,springboot会自动扫描某个路径下的某个文件(这个以后会详细说),会把starter中声明的bean,自动加入到Spring容器里,这也是上面那个例子中,为什么项目里没有声明RedisTemplate,但是Spring容器里却有RedisTemplate这个bean的原因,因为boot帮我们自动装配了。

  • 因此可以得出结论,SpringBoot功能很强,用起来也更省事。

  1. SpringBoot是基于Spring Framework之上的一个新框架,并没有脱离Spring的生态,也没有造新的轮子。还是会用到IOC、AOP、事务、MVC等概念。因此使用Boot并不意味着旧的就过时了。这说明引入SpringBoot的成本较低。

  2. SpringBoot背靠Spring生态,又有Spring社区作为背书,再加上spring cloud是基于springboot的,无论是背景还是前景,都很强。

总结

  • SpringBoot解决了版本冲突,简化了配置文件的复杂性,提高了开发效率。
  • SpringBoot基于Spring,学习成本相对较低。
  • SpringBoot功能强大,提供了很多好用的功能。例如自动装配、内嵌Servlet容器、运行时应用状态监控等等。
  • SpringBoot生态繁荣,背靠Spring社区。
  • SpringBoot是构建SpringCloud项目的前提,前景光明。
原文  https://juejin.im/post/5ef0c03ff265da02d812db66
正文到此结束
Loading...