一、SpringBoot是什么?

springboot是spring开源组织下的子项目,是spring组件一站式解决方案,主要是简化了使用spring的难度,节省了繁重的配置,提供了各种启动器,开发者能快速上手。

二、SpringBoot的优点

1 独立运行

springboot内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,springboot只要打成一个可执行的jar包就能独立运行,所有依赖包都在一个jar包内。

2 简化配置

spring-boot-starter-web 启动器自动依赖其他组件,减少了maven配置
在这里插入图片描述

3 自动配置

springboot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。

4 无代码生成和XML配置

springboot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是spring4.x的核心功能之一。

5 应用监控

springboot提供一系列端点可以监控服务及应用,做健康检测

三、不使用SpringBoot多痛苦?

1.各种技术整合在一起,版本混乱,大量依赖自己去找,依赖冲突。

2.基于xml格式的配置文件,对各种技术框架进行大量的繁琐配置,mvc-servlet.xml, applicationContext.xml, mybatis-config.xml, web.xml

3.web系统跑起来测一下,需要与Tomcat等web容器整合起来才能测试

4.单元测试的时候需要自己去选择和导入需要的各种测试组件的依赖,junit, hamcrest, mockito ,很多组件

5.部署打包的时候需要自己去配置打包插件

6.部署应用上线之后,没法去对线上的应用,包括jvm 堆栈等方方面面进行监控,没有方便的办法去看到这些东西
传统的以spring为核心的web系统开发,从启动项目、开发、测试、部署及监控,都很麻烦,有大量需要手工做的事情

四、使用SpringBoot多好?

1.springboot负责统一各个依赖的版本,保证各种 技术的版本之间兼容,自动引入需要的各种依赖。springboot 1.5.9 ,在这个版本基础之上,你引入的spring 、 mybatis、 spring MVC、 Redis、 zookeeper、 kafka 、MongoDB, 等等各种技术,在这个大版本的基础上,其实所有技术的版本都是互相兼容的,省去了我们自己寻找版本的整合,解决不兼容问题的一个过程。

2.所有技术整合进来之后,不需要xml配置,springboot全部是大量基于按照约定的自动配置,自动生成那些技术相关的一些bean,注入spring容器供使用,基于注解进行少量注释,基于application.properties, 少量的配置即可。

3.springboot支持内嵌的web容器,上来直接启动一个main方法就可以启动一个内嵌的tomcat web容器+web程序

4.一键引入需要的所欲单元测试组件依赖,所有测试组件的版本兼容,支持controller、 service、 dao各种测试

5.默认声明一个插件,自己给你把插件配置好了,支持打包成可以执行的jar包或者是war包

6.系统上线之后,默认支持大量的线上应用的监控metrics,可以看到线上应用的jvm堆栈等信息

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐