当面试被问:请你说说你对Spring Boot自动装配与条件装配的理解

我的回答是

springboot的自动装配就是比如当我们在用redisTemplate这个对象的时候,我们明明没有手动的把这个bean注册spring容器中,但是我们却可以从spring容器中拿到这个对象,这就是在我们加入了redis-stater依赖的时候,springBoot帮我们实现了自动装配。

自动装配的实现其实就是一种约定优于配置的思想,在我们springBoot的启动类上有@SpringBootApplication注解,它其实是有三个 注解组成,其中的@EnableAutoConfiguration就是开启自动装配的注解,而@EnableAutoConfiguration里又有@Import注解,我们都知道通过实现ImportSelector接口+@Import注解是spring注册bean的一种方式。所以springboot只要在这个地方知道我们要装配的类的名字就可以了。Spring boot采用SPI机制,通过一种约定来实现自动装配,也就是把你想要装配的类以k=v的形式放到META-INF/spring.factores文件,k就是org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

v就是我们想让springboot帮我们装配的全类名。

条件装配就是只有满足条件的时候spring boot才会帮我们装配,比如spring-boot-starter-data-redis依赖,它是springBoot提供的整合所以这一依赖包下不需要写spring.factores,所以redis相关的对象配置类实在springBoot中的,所以springboot不可能一启动就装配你,他需要判断,这就是条件装配,redis配置类中,会有@ConditionalOnClass注解,也就是只有当我们加入redis-stater这个依赖,spring boot才会帮我们装配

条件装配的另一种配置方式就是在

META-INF/spring-autoconfigure-metadata.properties文件里配置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w7486

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值