SpringBoot 自动配置学习笔记

本文是一篇关于SpringBoot自动配置的学习笔记,介绍了自动配置如何简化Spring应用搭建,解析了自动配置的实现原理,包括@EnableAutoConfiguration注解的作用,以及如何自定义自动配置类。
摘要由CSDN通过智能技术生成

摘要

本篇SpringBoot自动配置学习笔记纲要:
1,我们用SpringBoot的理由是因为它可让开发者更加快速高效搭建Spring应用,背后是“约定优先于配置”的理念和自动配置技术;
2,自动配置技术实现原理
3,自定义自动配置示例

1 自动配置解决了什么问题

我们用Spring Boot的理由

我们用Spring Boot的理由是什么?我的感觉是它大大降低了使用Spring 的门槛,回想之前用spring框架一个项目里各种XML配置,想启动个工程咋这么难,真不想回到那样的日子了。
SpringBoot能够让我们更加快速高效的搭建Spring 应用,是因为它的理念是“约定优先于配置”:

  • 约定一些推荐的默认配置
  • 开发人员只需要指定非默认的配置

SpringBoot 能够按照约定进行默认配置,自动推测用户需要的依赖并注册相应的bean到容器中,主要归功于它的自动配置特性。如此神奇的自动配置特性是如何实现的?

2 自动配置实现原理

在启动类(一般均位于src/main/java根路径下)中加上@SpringBootApplication注解就开启了SpringBoot框架,打开这个注解的实现发现它包含了三个最主要的注解

  • @SpringBootConfiguration(打开看到就是@Configuration,表示这是一个JavaConfig配置类)
  • @ComponentScan (启动扫描组件,关于该注解详细介绍看这篇帖)
  • @EnalbleAutoConfiguration(开启自动配置功能)

负责开启自动配置的是@EnableAutoConfiguration,打开看它的实现

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(EnableAutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
   
    // ......
}

这里面最重要的是@Import注解,它负责引入EnableAutoConfigurationImportSelector类把它作为bean注册到Spring容器中。从类名可以猜出EnableAutoConfigurationImportSelector应该是负责选择引入哪些配置,看它的源码中有个selectImports方法:

//spring-boot-autoconfigure版本是2.0.3-RELEASE
    public String[] selectIm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值