为什么你的springboot用起来这么爽

1. 前言

在没有SpringBoot之前呢,肯定是使用的SpringSpring有一个问题就是配置这些东西写起来比较的繁琐。为了解决这个问题就有了SpringBoot,用起来非常的爽,很多东西都不用配置。其理念就是约定大于配置的理念,比如配置同一个东西,大家都是这样配置,那么为什么不做一个默认的配置呢?下面的例子使用Spring-Data-Redis的例子进行对比。

2. 对比

2.1 Spring中配置

  • pom 忽略

  • 新建properties文件:
    在这里插入图片描述

  • spring中配置:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ByFerNl-1603701905651)(image\1.png)]

  • 然后直接注入使用

2.2 SpringBoot 中配置

  • 引入pom

  • application.yml配置

在这里插入图片描述

  • 直接使用

3. 思考

为什么我们就引入了一个坐标,并且配置了redis所需要的参数之后,就没干别的就能用了呢?

经过猜测,是不是SpringBoot给我们提供了一个默认的配置呢?这个就是所谓的自动装配。

4. 源码浅探究

4.1 入口

创建SpringBoot工程的时候,引入了对应的starter 同时在配置一下application.yml 就可以进行使用了,就是这么的方便。那么到头来就写了一个@SpringBootApplication注解,那么其入口肯定是在这里了。

4.2 SpringBootApplication注解的结构()

在这里插入图片描述

4.3 AutoConfigurationImportSelector

因为其是一个ImportSelector 所以要直接查看selectImports 方法:

在这里插入图片描述

4.4 自动装配配置类的查看(以Redis的配置为例)

从上面我们已经了解了SpringBoot已经将项目中用到的自动配置类加到spring 的容器中。下面就来看看这个默认的配置类是个什么样子的把。

在这里插入图片描述

上面的配置类,配置的什么东西,没有什么多说的。关键点是,这个配置类什么时候生效(放入Spring 容器)的。


4.5 自动装配配置类加载条件(以redis为例)

当所有的@Conditionxxx条件都成立的时候,此配置类才会生效(放入spring容器)

注解详情查看第5节

在这里插入图片描述

5. 用到的注解解释

在这里插入图片描述

对应的配置文件
在这里插入图片描述

6. 总结

总的来说,没有什么东西。我都不知道怎么写。

附录

1.附录1

在这里插入图片描述

如何证明是找的这个呢?看下图:

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42041788/article/details/109292990