spring boot支持三种Servlet容器+Servlet的模式,tomcat + spring mvc的模式只是其中的一种,另外两种分别是Undertow+Servlet和Jetty+Servlet。我主要在tomcat + spring mvc的架构下开发,因此关于spring boot的原理的探究也会限定在这个模式。
在我的“tomcat + spring mvc原理”的系列文章中,已经对这tomcat和spring mvc的基本原理实现做了介绍(旧坑快填完了,开个新坑O,o)。而spring boot内置了一个嵌入的tomcat包,项目可以直接生成jar包,执行时使用类似java xxxx.jar的命令就能启动。当然也可以设置打包成war包,部署在独立tomcat的服务目录下,这样内置的tomcat就不会被调用。
那么spring boot整合的版本相对于原版有什么优化呢?首先我们来体验一下自动生成的spring boot的应用,这样能够和独立部署的tomcat + spring mvc的模式进行比较。使用idea生成一个spring boot的demo非常简单。新建工程里选定Spring Initializer,Initializer service URL使用默认的https://start.spring.io/ ,项目的基本设置不用改,只需要在选定依赖时选择Developer Tools,勾选Spring Boot DevTools,然后就可以完成了。生成的项目目录如下。