Spring Boot的启动器和加载器机制有效地实现了对自包含jar包的管理和执行,我们无需关心复杂的类路径设置和依赖加载,只需通过一个简单的命令即可启动一个完备、独立运行的应用程序。
内嵌Web容器
Spring Boot的一大特色就是能够无缝整合并内嵌多种轻量级Web容器,好比:Apache Tomcat、Jetty、Undertow以及Reactor Netty(对于相应式编程模子)。内嵌Web容器的引入极大地简化了Web应用的部署流程,我们不再必要在本地或服务器上独立安装和设置Web服务器(好比从前还要在本地安装tomcat)。
当Spring Boot应用引入了spring-boot-starter-web依赖时,默认情况下会主动设置并启动一个内嵌的Web容器。在Spring Boot启动的过程中,内嵌容器作为应用的一部分被初始化并绑定到特定端口上,以便对外提供HTTP服务。
Spring Boot内嵌web容器的长处在于简化部署,通过将Web容器内置于应用中,只需分发单一的JAR文件,就能在干净的情况中运行应用,避免了与现有Web服务器版本辩论或设置不当等问题;同时加速了启动速率,尤其在开辟和测试阶段,实现近乎即时的热重启;提高了应用的稳定性,由于开辟情况和生产情况使用相同的Web容器,降低了因情况差异导致的问题;此外,固然容器是内嵌的,但仍然可以进行全面的设置调整,如端口、连接数、SSL设置等,以满足不同场景的需求。通过内嵌Web容器,Spring Boot真正实现了“开箱即用”的理念。
主动设置与类路径扫描
Spring Boot的核心特性之一就是其强大的主动设置能力,它答应应用在几乎零设置的情况下快速启动并运行。
当应用启动时,Spring Boot会读取resource/META-INF/spring.factories文件,该文件列出了所有可用的主动设置类。当它检测到应用情况中对应的主动设置类就会生效,通过@Configuration注解的类创建并注册Bean到Spring容器中,从而实现Bean的主动装配。