Spring Boot的设计目的就是用来简化新Spring应用的初始搭建以及开发过程。该框架采用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
传统的Spring项目中需要用到大量的XML配置文件,以及复杂的Bean依赖关系,随着Spring 3.0的发布,Spring团队开始大量使用约定大于配置的思想来简化配置。Spring Boot就是这样的一种开发框架,Spring Boot并不能直接完成Spring的工作,准确地来说Spring Boot只是一个整合Spring各功能的中间件,用于快速的开发Spring应用,同时针对于常用的第三方库也提供了默认的配置,基于可以实现0配置开发的目的。
Spring Boot的设计时尽可能快的启动和运行,只需要最少的Spring配置。Spring Boot对构建生产就绪应用程序具有独特的方法,其本质还是基于Spring实现的。
Spring Boot特点
(1)快速构建项目。使用IDEA可直接创建Spring Initializr方式的Spring Boot项目。
(2)嵌入式Web容器。在传统的Java Web项目中,当开发完成之后还需要配置所需的Web容器(比如Tomcat或者WebLogic之类的Web容器)。但是在Spring Boot搭建的项目中,内部提供了几种Web容器,如Tomcat、Jetty、Undertow。
在Spring Boot1.x中默认为Tomcat;2.x中分为两种情况,引入spring-boot-starter-web依赖为Tomcat,引入spring-boot-starter-webflux依赖则为Netty。同时也支持上面的几种Web容器,开发者只需要根据场景选择合适的Starter来获取一个默认配置好的容器即可,当启动成功后,应用一个默认端口为8080的HTTP服务。
(3)易于构建任何应用。Spring Boot提供了一个强大的starter依赖机制,实际上Spring团队将Spring Boot框架整合了一切常用的Maven依赖,使Spring Boot想要整合对应依赖,就要将需要的依赖全部引入。比如需要在项目中使用Web(Spring MVC),如果是原有的Maven项目就需要引入很多依赖才能完成这个简单的需求。但是在Spring Boot中只需要在Maven依赖中加入spring-boot-starter-web依赖即可。比如项目中需要使用MySQL数据库,只需要加入MySQL依赖,并在配置文件中配置数据库信息就可以正常使用。
(4)自动化配置。在应用程序引入依赖之后,还有一个强大之处在于Spring Boot应用会根据引入的依赖提供一些默认的配置供我们使用。如果需要修改,就只在配置文件中修改对应的配置即可完成需求。
优点:
(1)依赖简化。
(2)配置简化。
(3)部署简化。
(4)监控简化。