SpringBoot3 注入Bean方法总结 以及 起始依赖解析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • @ConditionalOnClass:如果类路径中存在这个类,则触发指定行为
  • @ConditionalOnMissingClass:如果类路径中不存在这个类,则触发指定行为
  • @ConditionalOnBean:如果容器中存在这个Bean(组件),则触发指定行为
  • @ConditionalOnMissingBean:如果容器中不存在这个Bean(组件),则触发指定行为

在这里插入图片描述
在这里插入图片描述
综上,我们总结一下:

  1. 首先我们创建一个SpringBoot工程,这个工程中包含了 spring-boot-starter-parent 这个pom 父工程,这个父工程中继承了spring-boot-dependencie 这个pom父工程,而这个spring-boot-dependencies主要的职责就是管理了 SpringBoot 全场景的依赖版本信息。
  2. 接下里我们导入具体的场景启动器,这里我们以 spring-boot-starter-web 为例,它 继承了 spring-boot-starter 这个父工程(所有的场景启动器都会继承这个父工程),spring-boot-starter 这个父工程 包含了 全场景的所有依赖,而 spinrg-boot-starter-web这个pom文件中定义的依赖可以理解为 激活了 这个父工程中 某些和web相关的依赖组件 比如 spring-tomcat、springmvc、spring-json等等。
  3. 其实将这些特定场景所需的依赖导入进来还是远远不够的,因为我们知道,还需要对它们进行配置属性,还需要将它们加入到容器中,而 spring-boot-starter 这个pom文件中还包含了一个很关键的 spring-boot-autoConfigure,这个包里面包含了 全场景的依赖的自动配置类,同样的,虽然包含了所有场景的自动配置类,但是并不是所有都会开启,只有符合当前场景要求的才会开启。

下面我介绍一下@SpringBootAppliacation这个注解

在这里插入图片描述
XXXAutoConfiguration 类的作用

  • 首先我们知道,@Configuration这个注解的作用就是 配置类,我们可以通过编写这个配置类,加入@Bean的注解,让一些Entity加入容器,所以这个XXXAutoConfiguration这个类的作用就是让 外部类 加入 容器 称为Bean。
    在这里插入图片描述
  • 其次我们还看到,这些配置类中,还加入了 xxxxProperties.class 的配置属性类,用来给Bean设置属性的。
    在这里插入图片描述
  • 而这些xxxxProperties又是根据application.properties中的信息,将属性提取出来的。(当然,这里application.properties中没有定义这些属性,所以它这里用的是一些默认的属性,而当我们自己在appliacation.properties中定义这些属性的适合,就会生效了)。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值