SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面

介绍下开发环境
JDK版本1.8
springboot版本是1.5.2
开发工具为 intellij idea(2018.2)
开发环境为 15款MacBook Pro

前言

很多时候,我们在公司用springboot作为基础框架开发项目的时候,会遇见依赖jar的时候,别的jar里面需要创建一些bean,往往不是很方便,我们需要通过 @ComponentScan 注解来扫描,才能创建上,这时候,自动配置就派上用场了,官方文档上有介绍(需要细细看才能找到),估计很多朋友还不知道,这边写个教程,给各位作参考

如何弄自动配置呢?

这次,我们只在同一个项目内配置,只做演示自动配置,如果是jar,依葫芦画瓢,然后上传到maven私服,普通springboot项目依赖该jar即可

1.我们先创建一个普通的spring-boot项目,记得添加web依赖,否则,项目不会后台运行
SpringBoot自动配置
2.创建一个测试自动配置的类(不跟启动类一个目录下,最好单独创建一个目录)
SpringBoot自动配置
3.然后我们在启动类配置下,查看是否会打印创建 TestAutoConfiguration Bean的日志记录
SpringBoot自动配置

4.接下来,我们启动项目,查看日志打印,会发现,并没有打印创建 TestAutoConfiguration 跟打印Bean名称的日志,表示没有 TestAutoConfiguration 并没有注册到IOC上,然后我们增加自动配置

增加自动配置

1.我们需要在 resources 下创建一个目录名叫 META-INF 接着在里面创建一个叫 spring.factories 的文件,里面
内容如下:
SpringBoot自动配置

2.理论上我们还需要在启动类上面配置注解 @EnableAutoConfiguration 但是注解 @SpringBootApplication 已经包含了该注解,所以我们不需要配置该注解 @SpringBootApplication 注解源码如下:
SpringBoot自动配置
3.然后,我们启动项目,查看日志,发现打印了应该打印的日志,说明自动配置成功
SpringBoot自动配置