浅谈Spring Boot 运行原理

首先,创建一个Spring Boot项目。

pom.xml

pom.xml文件是一个项目中管理资源和插件的文件,打开 pom.xml 文件,我们可以看到如下图所示:

它还存在一个父项目,继续点进去,就可以看到他的父依赖,在父依赖中管理了Spring Boot应用中依赖的所有包版本的地方,在导入包的时候默认是不需要指定版本的;但是,若导入的包在父项目中没有管理,还是需要手动配置版本的。

启动器

spring-boot-starter 是Spring Boot 的启动器,又叫场景启动器。Spring Boot将所有的功能场景都提取出来,做成了一个个的 启动器。

例如:spring-boot-starter-test    测试依赖,导入了单元测试运行时需要导入的所有依赖

           spring-boot-starter-web   web依赖,导入了web项目运行时需要导入的所有依赖

主启动类

创建了一个Spring Boot项目,可以找到一个由  @SpringBootApplication 注解标注的类,该类就是主程序类,是Spring Boot程序的入口。该注解都做了什么?

点击进入 @SpringBootApplication ,可以发现它的类上面还有注解,如图所示:

注解 @ComponentScan

作用:自动扫描加载符合条件的组件和bean,将bean定义加载到IOC容器中,该注解对应Spring中XML配置文件中的元素。

包含了需要注入的基本类型和String类型的数据,需要扫描的包,需要加载到容器中的bean,当需要参数时,Spring会去容器中查找有没有可用的bean对象。

注解 @EnableAutoConfiguration

作用:开启自动配置的功能,使得Spring Boot来自动配置需要资源,该注解使得自动配置生效。

点击进入,可以发现,它还有很多的注解标注:

getCandidateConfigurations()

该方法返回的就是自动配置的类名,所有的类都存在META-INF中。

进入SpringFactoriesLoader.loadFactoryNames()方法,该方法中定义了属性  FACTORIES_RESOURCE_LOCATION 存放项目资源的路径

在该方法中,再查看 loadSpringFactories() 方法,该方法是用来获取项目资源的。

再来打开这个项目资源 "META-INF/spring.factories;",在该文件中配置包含了所有自动配置的类,在使用时,导入对应的start就可以使用。

注解 @SpringBootConfiguration

作用:标注该类是SpringBoot的配置类

这两个配置说明是一个配置类,对应Spring的XML文件;同时说明启动类也只是Spring Boot的一个组件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值