Spring boot 的启动类启动后,tomcat 容器、Spring mvc 、spring 事务等等第三方依赖也已经自动启动,那么spring boot 是如何启动的第三方依赖?
以spring boot 为例:
1.进入spring boot 启动类,@SpringBootApplication 是Springboot 扫描第三方依赖的重要注解
进入@SpringBootApplication
再进入@EnableAutoConfiguration
使用@Import 对 AutoConfigurationImportSelector 类进行引入,首先调用 selectImport() 方法,再在方法中调用 getAutoConfigurationEntity()
再调用getCandidateConfigurations()
getCandidateConfigurations() 方法就去 META-INF/spring.factory 配置文件中加载相关的配置类
spring.factories 配置文件是加载 spring-boot-autoconfigure 的配置文件。
在spring.factories 文件中,找到加载 webservlet 的组件
打开改文件
通过工厂模式创建tomcat
最后是启动 tomcat
getWebServer 是谁调用启动的Tomcat?
打开 ServletWebServletApplicationContext
创建 tomcate 服务
选择 Tomcat
然后启动