SpringBoot(一)

本文探讨了SpringBoot的自动配置和自定义配置的实现方式,包括@Import注解的解析顺序, DeferredImportSelector类的使用,以及如何通过@ConditionalOnClass注解实现按需加载。同时,讲解了SpringBoot的扩展点,如自定义类型转换器,并强调了配置类中Bean的覆盖规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot自动配置和自定义配置

@Import注解

对于下面的例子来说,MyConfig和OtherConfig里面有名字相同的Bean,运行的时候以MyConfig为主,因为Import注解会先解析OtherConfig配置类,然后再去解析MyConfig配置类,后面的解析会覆盖前面的解析。
在这里插入图片描述

实现DeferredImportSelector类

OtherConfig后执行,并且在OtherConfig里面有@ConditionOnMissingBean注解,因为先解析了MyConfig类里面的myBean,所以在解析OtherConfig的时候就不会覆盖。
在这里插入图片描述

SpringBoot相关源码

AutoConfiguration接口里面引入了AutoConfigurationImportSelector,先解析自定义的配置类,然后再去解析SpringBoot中的自动配置类,只有对应的Bean不存在的时候才会去解析SpringBoot里面的自动配置类在这里插入图片描述在这里插入图片描述

在这里插入图片描述

SpringBoot按需加载

SpringBoot中几乎对所有的功能都有自动配置类,包括数据库、SpringMVC等,在启动的时候并不是会把所有的配置全部进行加载,只会加载需要的自动配置。比如下面的代码@ConditionalOnClass注解,只有在pom.xml中引入了对应的依赖,才会加载对应的自动配置类,也就是会按需加载

SpringBoot扩展点

和Spring类似,SpringBoot可以在原来框架的基础上进行二次开发。比如:如果想要自定义类型转换器,在配置类里面添加Convertor并且实现convert方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值