目录
自动配置
遵循约定大约配置的原则,在boot程序启动后,起步依赖中的一些bean对象会自动注入到ioc容器。
自动配置-源码分析
程序引入spring-boot-starter-web起步依赖,启动后,会自动往ioc容器中注入DispatcherServlet
1、在主启动类上添加了SpringBootApplication注解,这个注解组合了EnableAutoConfiguration注解
2、EnableAutoConfiguration注解又组合了lmport注解,导入了AutoConfigurationlmportSelector类
3、实现selectlmports方法,这个方法经过层层调用,最终会读取META-INF目录下的后缀名为imorts的文件,springboot2.7以前的版本,读取的是spring.factories文件。
4、读取到全类名了之后,会解析注册条件,也就是@Conditional及其衍生注解,把满足注册条件的Bean对象自动注入到Ioc容器中。
自定义starter
在实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在SpringBoot的项目中,一般会将这些公共组件封装为SpringBoot的 starter。
自定义mybatis的starter
步骤
1、创建dmybatis-spring-boot-autoconfigure模块,提供自动配置功能,并自定义配置文件
META-INF/spring/xx.imports,只保留配置文件,配置类和pom文件即可