SpringBoot启动流程

每个SpringBoot应用程序,都有1个主类,主类中包括main(),main()中调用SpringApplication的静态方法run()来启动SpringBoot应用程序。主类上会标注@SpringBootApplication注解,它是1个组合注解,底层相当于3个注解:@ComponentScan、@EnableAutoConfiguration和@Configuration
(1)@ComponentScan,扫描主类所在包路径下的所有标注@Component的Bean并进行装配,包括@Component的子类@Controller、@Service和@Dao
(2)@EnableAutoConfiguration,开启自动配置,可以根据classpath和Bean定义自动配置。在SpringBoot auto-config jar包的META-INF文件夹中有1个spring.factories文件,该文件包括一系列的KV,K为注解的全额限定名,V为当使用注解时,需要自动配置的Bean。SpringBoot就是使用这种方式完成自动配置
(3)@Configuration,Spring4的新注解,相当于在xml配置文件中配置Bean。标注@Configuration的类中包括1个或多个使用@Bean注解声明的对象,@Configuration会将它们注入的Spring容器

(1)Spring Boot应用程序主类main()会调用SpringApplication类的run(),该方法先创建1个SpringApplication对象;创建SpringApplication对象时,会执行它的初始化方法initialize(),initialize()会对SpringApplication赋一些初值,例如根据当前classpath下是否有Servlet判断应用程序是WEB应用程序还是非WEB应用程序;初始化后,执行SpringApplication对象的run(),在这个方法中创建ApplicationContext上下文环境,设置监听器等

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,957评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,126评论 6 342
  • 写在前面: 由于该系统是底层系统,以微服务形式对外暴露dubbo服务,所以本流程中SpringBoot不基于...
    jianshu_tr阅读 37,944评论 5 88
  • 写在前面: 由于该系统是底层系统,以微服务形式对外暴露dubbo服务,所以本流程中SpringBoot不基于...
    sherlock_6981阅读 3,989评论 0 10
  • 链接:http://www.cnblogs.com/xiaoxi/作者:平凡希 我们开发任何一个Spring Bo...
    聆世冷暖阅读 9,550评论 1 35

友情链接更多精彩内容