Spring Boot2.x 开发技巧及实战 第2章:Spring Boot2( 四 )


2.3自动配置 2.3.1 自动配置原理
自动配置意思就是框架帮我们把需要配置的参数进行了默认的配置,比如的端口号,默认是8080,但是这些默认配置在哪里配置的呢?自动配置的原理是什么呢?下面讲解一下:
@n包含了@ion,这个注解又包含@(.class) 。启动时,会调用的回调函数,让其解析所有包下的"META-INF/."并把key为"...ion"对应的value里的类都加载为Bean,而那些类基本都是注解了@的配置类 。这便是能自动配置的原因 。
如上图所示,自动配置中,有以下4个配置文件参与(-boot--2.2.4..jar包下):
.--.json和---.--.
1) .:
.文件,里面写了自动配置()相关的类名,因此产生了一个疑问:“明明自动配置的类已经打上了@的注解,为什么还要写.文件?”
通过查看源码可以得出结论(查看源码过程省略):
.文件起到了帮助本项目包以外的bean(即在pom文件中添加依赖中的bean)注册到-boot项目的容器的作用:由于@注解只能扫描-boot项目包内的bean并注册到容器中,因此需要@ion注解来注册项目包外的bean 。而.文件,则是用来记录项目包外需要注册的bean类名 。
2) ---.json 为手动添加,--.json自动生成 。---.json将会合并到--.json中,并覆盖掉相同的说明 。这两个文件中,定义了默认配置项的相关信息 。
比如:的默认端口就是在--.json文件中:
在自定义启动器时,要具备的自动配置功能,就要填写上面的文件(视需要而定,填写其中的几个)
附上:
官方网站上:#-- 有全部的默认配置项信息 。
比如我们项查看redis相关的配置项,打开此网站,ctrl+F进行搜索redis,会显示相关的配置项及默认值,如下图:
疑问: --.json是怎么自动生成的?
2.4自定义配置 2.4.1 自动配置