0
点赞
收藏
分享

微信扫一扫

1.SpringBoot的自动配置原理

  SprinBoot集成了Spring,包含其IOC(依赖注入)和AOP(面向切面编程)核心原理,两者最大的区别是SpringBoot具有自动配置的原理。

1.SpringBoot自动配置概述

  SpringBoot的自动配置是指其从META-INF的spring.factoris文件加载需要自动配置的类,然后生成对应的Bean注入到SPring容器中,交给SPring容器管理

2.SpringBoot自动配置原理

  1. 在SpringBoot项目中,主启动类上面有一个注解SpringBootApplication注解,它对@Configuration、@ComponentScan以及@EnableAutoConfiguration等三个注解进行了封装,@EnableAutoConfiguration注解是SpringBoot实现自动配置的核心注解
  2. 该注解通过@Import注解导入了一个@AutoConfigurationImportSelector类,该类实现了一个ImportSelector导入器接口,该接口中存在一个selectImports()方法。该方法的返回值是一个存储Spring中类全名的数组
  3. AutoConfigurationSelectors类重写了selectImports()方法,通过重写后的selectImports()方法读取META-INF下spring.factories文件下配置类的全类名
  4. 这些配置类定义的Bean根据条件注解所指定的条件决定是否导入Spring容器中

3.SpringBoot中starter的原理

  其实,SpringBoot中starter的原理基于两点,分别是起步依赖自动配置

3.1 起步依赖

  起步依赖是指将具有某种功能的依赖打包到一起简化依赖导入的过程

3.2 自动配置

   在SpringBoot中的@SpringBootApplication注解中包含一个@EnableAutoConfiguration注解,该注解就是自动配置的核心注解。@EnableAutoConfiguration注解通过@Import注解导入了一个名为@AutoConfigurationImportSelector类,该类实现了ImportSelector导入器接口,该接口中有一个返回值为Spring中全类名的数组。AutoConfigutationImportSelectot类通过重写该方法读取META-INF中spring.factories中配置类的全类名。这些配置类定义的Bean根据条件注解决定是否导入到Spring容器中。



举报

相关推荐

0 条评论