三方集成自动配置

前言:小白学习中,不足之处很多,仅记录一些学习的一些自我见解,还有待完善!

一、三方集成

1.配置优先级:

从加载层面来说yml最先加载,但是会被后加载的所覆盖。所以优先级会低,好像和打枪的那个一样

需要注意的是,配置的优先级是由高到低的顺序,即高优先级的配置会覆盖低优先级的配置。因此,在实际使用中,可以根据需要选择合适的配置方式,并确保配置的优先级符合预期。

2.Bean管理

第三方bean不能做源代码的改动,不能加注解,所以是无法直接用@Component 及衍生注解来声明baan对象,怎么交给IOC管理???这时候就需要用到@Bean注解。

自动配置:pom.xml 配置的第三方依赖当需要用到依赖中的功能时,springBoot一启动就会读写xml文件然后把需要用到的第三方的一些Bean对象交给IOC容器,依赖注入就可以使用。这个过程叫做自动配置。

自动配置原理

前置知识:@Conditional条件注解 和@ Import导入配置

@Conditional :

作用:按照一定的条件进行判断,需要声明的Bean,在满足给定条件后才会注册到Spring lOC容器中。

以下是子注解

1.@ConditionalOnClass(Deprecated.class) //判断环境中是否有字节码文件,有才会注册Bean到IOC容器中
2.@ConditionalOnMissingBean(name = {"sdfv"}) //环境中有,注册失败 //判断环境中没有对应的bean,才会注册bean到IOC容器中
3.@ConditionalOnProperty(name = "",havingValue = "") //判断环境中是否有对应属性的值。有才注册

@Import

A工程中的一个类交给了IOC容器管理,B工程的测试类想用这个Bean对象,怎么拿???

第一种方式:pom.xml中的坐标是项目的唯一标识。利用这个可以先把A工程打包并交给本地仓库(install就行)。然后在B工程的pom.xml引入A工程的坐标。接着在B工程的测试类注入@Autowired,结果发现还是没有注入进来,是因为启动类的扫描器默认扫描到启动的这个包的及其子包,现在需要手动扫描到A工程才能彻底注入进来使用!!!这种方案不用--麻烦)

第二种方式:使用Import 导入

作用:导入的bean 和配置类会被Spring加载到IOC容器中

导入形式有以下三种

@Import({TokenParser.class, HeaderConfig.class}) //bean类,普通类
@Import({HeaderConfig.class}) //配置文件
@Import({MyImportSelector.class}) //ImportSelector接口子类

重写selectImports 方法:返回的数组装的就是交给ioc管理的Bean

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值