大家好,又见面了,我是你们的朋友全栈君。
一、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堆栈等信息
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171361.html原文链接:https://javaforall.cn