springboot(二)起步依赖原理分析 和 自动装配原理解析

参考:https://www.cnblogs.com/hhcode520/p/9450933.html
https://www.jianshu.com/p/88eafeb3f351


一、起步依赖原理分析

spring-boot-starter-parent分析:

引入了springboot的起步依赖,项目才是一个springboot项目。

1、按住Ctrl进入 spring-boot-starter-parent 中,再点击进入 spring-boot-dependencies 中,在 spring-boot-dependencies 中定义了很多依赖的版本。xml配置如下(只摘抄了部分重点配置):
在这里插入图片描述在这里插入图片描述
2、因此,从上面的spring-boot-dependencies的pom.xml中我们可以发现,一部分依赖的版本、依赖管理、插件管理已经定义好了,所以我们的SpringBoot工程继承了spring-boot-starter-parent后就已经具备版本锁定了。

  • 一部分依赖的版本,已经在启动依赖中定义好了。
  • 因此,我们在引入部分依赖时,不需要再写版本号了。
  • 所以起步依赖的作用就是 对依赖的版本号进行 传递。

spring-boot-starter-web分析:

这个是 spring-boot-starter-web 的pom内容:
在这里插入图片描述

spring-boot-starter-web ,就是把web功能需要的所有依赖进行了 “打包” ,我们只需要引入这个功能对应的starter,就相当于是引入了多个依赖。
同样的: 这个功能starter,也是依赖的 spring-boot-dependencies,功能starter的依赖版本也是被锁定了。


二、自动装配原理分析

在启动类上的注解@SpringBootApplication,中包含有3个注解。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

@EnableAutoConfiguration作用就是从classpath中搜寻所有的META-INF/spring.factories配置文件,spring.factories 中是自动配置类的全路径,通过反射 将这些自动配置类 生成对应的标有@Configuration注解的配置类,加载到IoC容器中。

哪些功能类能生效?需要的条件:

  • 看pom.xml 是否有对应功能的jar包;
  • 然后根据 自动配置类 中的 @Conditional 注解决定哪些配置需要配置,哪些不需要配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值