美文网首页
springboot的工作原理

springboot的工作原理

作者: yinhaijun | 来源:发表于2019-01-23 13:57 被阅读27次

    承接springmvc的工作原理,这里探讨springboot是如何工作的,由springboot的启动类SpringbootdemoSimpleApplication.java开始,我们知道,如果想把springboot的项目打包放到tomcat里运行,需要将启动类继承SpringBootServletInitializer

    public class SpringbootdemoSimpleApplication extends SpringBootServletInitializer{
    

    因为SpringBootServletInitializer是继承WebApplicationInitializer的

    public abstract class SpringBootServletInitializer implements WebApplicationInitializer {
    

    在springmvc中,WebApplicationInitializer 就是启动类,原理是通过servlet的特性进行加载的,所以我们需要导入servlet的依赖包,并排除springboot内置的tomcat包

        <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <!-- 排除内置容器,排除内置容器导出成war包可以让外部容器运行spring-boot项目-->
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>4.0.0</version>
                <scope>provided</scope>
            </dependency>
    

    注解@SpringBootApplication是springboot启动的关键注解,该注解下有@EnableAutoConfiguration注解,开启自动配置,会把相关的配置类加载到spring容器中,而这些配置类的全类名,就在文件spring.factories下


    image.png

    比如WebMvcAutoConfiguration就是springmvc的配置类,加载此配置类,就相当于普通的springmvc项目的springmvc-servlet.xml配置。

    总结

    本文以springmvc为引入点,说明一个普通的springboot项目整合过程,关于springboot的更加详细的原理剖析参考文章: springboot之启动原理解析及源码阅读

    相关文章

      网友评论

          本文标题:springboot的工作原理

          本文链接:https://www.haomeiwen.com/subject/bvmjjqtx.html