-
Spring Boot自动配置原理与实践(二)
前言
在之前的博文(Spring Boot自动配置原理与实践(一))中,已经介绍了Spring boot的自动配置的相关原理与概念,本篇主要是对自动配置的实践,即自定义Starter,对原理与概念加深理解。
本篇是我在实际工作中配置的用于弱口令检查的Starter,能方便嵌入到用户模块中的相关密码接口或方法,对弱口令进行检查并反馈,当然由于是公司内部代码,部分代码省略。
一、Starter实践
1、配置Maven依赖
Spring Boot自动化配置主要依赖如下两个包:
- spring-boot-starter:打包starter主要依赖
- configuration-processor:自动化配置主要依赖
2、创建实体类映射配置信息
众所周知,SpringBoot Starter最厉害的就是可以通过最简单的properties/yaml文件配置,达到最终目的。配置文件需要通过解析生成对应的实体类
其中prefix = "weak.password",标明配置文件以“weak.password”开头的字段(对应实体类中的字段)都是需要解析的。在配置文件中输入前缀后,会进行提示说明
3、定义配置类
这一步非常关键,是自动装配的核心,通过配置文件配置灵活的参数产生相关的Bean,完成一系列初始化操作,关键的几个注解在这里就不解释了,具体可以看Spring Boot自动配置原理与实践(一)。
4、创建spring.factories文件
之前三步所有的操作都已经完成,那么将Starter当引入工程中是如何发现并自动装配的,这就需要spring.factory文件中标明,在resource/META-INF在新建spring.factory文件
在该文件中指明AutoConfiguration的全Class路径
这样打包的时候就能将spring.factory文件打包,项目启动的时候就会扫描并装配
同时生成spring-configuration-metadata.json文件,其内容就是提供配置文件智能化提示的
二、自定义Starter使用
首先引入自定义的Starter包依赖到相关应用中
然后在配置文件中打开开关,或者某些条件才能开启自动配置,以我的代码示例举例的话,就是需要指定enabled为true
其次可以观察启动的时候相关的Bean是否被自动装配,可以打开debug模式查看日志,或者在idea中查看Endpoints-->Beans-->application,可以看到相关的自动配置启动时加载了,并且相应的Bean也注入了。
最后就是验证是否符合业务逻辑
__EOF__