自动配置

一、自动配置

springboot的自动配置就是当spring容器启动后,一些配置类、bean对象就自动存到了IOC容器中,不需要我们手动去声明,从而简化了开发,省去了繁琐的配置操作。

二、方案

1.方案一:@ComponentScan组件扫描

image-20230728155557359

2.方案二:@Import导入。使用@Import导入的类会被Spring加载到IOC容器中,导入形式主要有以下几种:

(1) 导入普通类

(2) 导入配置类

(3) 导入ImportSelector接口实现类

(4) @EnableXxxx注解,封装@Import注解(方便优雅)

三、源码跟踪

@SpringBootApplication标识在SpringBoot工程引导上,是SpringBoot中最重要的注解。由三个部分组成:

1.@SpringBootConfiguration:该注解与@Configuration注解作用相同,用来声明当前也是一个配置类。

2.@ComponentScan:组件扫描,默认扫描当前引导类所在包及其子包。

3.@EnableAutoConfiguration:SpringBoot实现自动化配置的核心注解。

四、@Conditional

1.作用:按照一定的条件进行判断,在满足条件后才会注册对应的bean对象到Spring IOC容器中。

2.位置:方法、类

3.@Conditional本身是一个父注解,派生出大量的子注解:

  • @ConditionalOnClass:判断环境中是否有对应的字节码文件,才注册bean到IOC容器。

    image-20230731094958541

  • @ConditionalOnMissingBean:判断环境中有没有对应的bean(类型或名称),才注册bean到IOC容器。

    image-20230731095010425

  • @ConditionalOnProperty:判断配置文件中有对应属性和值,才注册bean到IOC容器。

    image-20230731095025884

五、自定义starter

场景:在实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在SpringBoot的项目中,一般会将这些公共组件封装为SpringBoot的starter

1.SpringBoot官方:

image-20230731095802229

2.其他技术提供:

image-20230731095829713

posted @ 2023-07-31 10:56  __YJC  阅读(13)  评论(0编辑  收藏  举报