SpringBoot无废话入门02:SpringBoot启动分析

1.核心注解web

        在上文中,咱们讲到了@SpringBootApplication是SpringBoot的核心注解。spring

        能够很方便的在idea中下载源码来查看该注解的源码,以下:app

        能够看到,该注解自己又被其它注解所叠加。其中最重要的注解是@SpringBootConfiguration和@EnableAutoConfiguration。第一个支持代表当前类至关因而一个配置文件,第二个注解代表当前应用程序支持自动配置,即容许SpringBoot来提供对web应用的配置。这里就要注意了,咱们说SpringBoot看不到配置文件,不是真的就没有配置文件了,而是SpringBoot帮咱们完成了配置。ide

2.核心配置spring-boot

        既然SpringBoot帮咱们完成了配置,那么,当前配置若是咱们不满意,能不能修改呢?当时是能够的。源码分析

        在resource下建立application.properties,好比为了修改默认端口8080,咱们输入这样的内容:server.port=9090idea

        再次启动项目,就能够看到端口位置被修改了。server

        还有一些经常使用的配置项,logging.level.org.springframework,配置为,开发

        logging.level.org.springframework=DEBUGget

        就能够在控制台看到DEBUG信息。

        更多的属性,能够查看idea给咱们的智能感知,

3.源码分析

        有同窗可能会进一步问,那么,到底SpringBoot的核心配置是怎么加载 呢?这个时候,咱们只能经过进一步的源码分析获得了。

        Spring的入口类是SpringApplication的class,在其构造器中,有这样一个方法,叫作getSpringFactoriesInstances,

        查看代码,追踪到SpringFactoriesLoader,

        打开该类,就看到了一个常量,FACTORIES_RESOURCE_LOCATION,这个常量所定义的"META-INF/spring.factories"就是咱们所要知道的核心配置类了,

        找到它,打开它看看吧,能够看到在这里面定义的那些初始化器,

        试着打开一个咱们可能熟悉的初始化器ServerPortInfoApplicationContextInitializer,

        能够看到,在这里对server.ports进行了处理。

4.starter

        最后,再说一下starter。

        除了spring-boot-starter-parent和spring-boot-starter-web这两个starter以外,还有其它的一些starter,咱们能够在官方站点

        https://spring.io/projects/spring-boot/#learn

        查到所有的starter,

        随着开发的深刻,咱们会使用愈来愈多的starter。

        感谢关注“码农星球”。本文版权属于“码农星球”。咱们提供咨询和培训服务,关于本文有任何困惑,请关注并联系咱们。

相关文章
相关标签/搜索