自动配置和装配
自动装配原理 引用:zhuanlan.zhihu.com/p/384540393 自动装配可以简单理解为:通过注解或者一些简单的配置就能在 Spring Boot 的帮助下实现某块功能。
SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot 在启动时会扫描外部引用 jar 包中的
META-INF/spring.factories文件,将文件中配置的类型信息加载到 Spring 容器(此处涉及到 JVM 类加载机制与 Spring 的容器知识),并执行类中定义的各种操作。对于外部 jar 来说,只需要按照 SpringBoot 定义的标准,就能将自己的功能装置进 SpringBoot。 原理: SpringBoot 的核心注解SpringBootApplication大概可以把 它看作下面3个 注解的集合:
@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制@Configuration:允许在上下文中注册额外的 bean 或导入其他配置类@ComponentScan:扫描被@Component(@Service,@Controller)注解的 bean,注解默认会扫描启动类所在的包下所有的类 ,可以自定义不扫描某些 bean。如下图所示,容器中将排除TypeExcludeFilter和AutoConfigurationExcludeFilter。
@EnableAutoConfiguration:实现自动装配的核心注解
其主要Import了 AutoConfigurationImportSelector类,该类获取Spring Boot Starter下所有依赖的META-INF/spring.factories全限定类名,然后加载符合条件(条件注解)的类到 IoC 容器中。
如何实现一个Starter
创建 xxx-spring-boot-starter 工程 在bom.xml中引入相关信赖 创建 XxxAutoConfiguration 类,