建议收藏 | SpringBoot 元数据配置原来可以这么玩!

简介: Spring Boot jar 包含元数据文件,提供所有支持的配置属性的详细信息。该文件旨在让 IDE 开发者提供上下文相关的帮助和“代码完成”。总结本篇文章希望对从事相关工作的同学能够有所帮助或者启发。

一、背景


最近在调试reactive-steams源码的时候看到spring-boot源码包里面的

  • spring-configuration-metadata.json
  • additional-spring-configuration-metadata.json


image.png


说实话主要是metadata吸引了我,因为最近在调整引擎元数据管理确实折腾了很久。


查了官方的资料发现这里也是 SpringBoot 提供的元数据配置拓展,但是这里的元数据不是只在 Spring bean  管理的元数据类似。

▐ 官方解释


image.png


访问地址:https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-additional-metadata


简单点可以理解为这类元数据的配置时为了让我们在使用 IDEA 开发的过程中,使用application.properties或者 application.yml配置的时候更有注释说明,更方便我们开发使用。

▐ 官方案例

以我们常用的 logging 配置为例

  • 元数据配置

image.png

image.png

  • 定义配置

image.png


二、应用实例


▐ 插件工厂配置定义

配置元数据文件位于 jar 下面。META-INF/spring-configuration-metadata.json它们使用简单的 JSON 格式,其中的项目分类在“groups”或“properties”下

image.png


{
"properties": [
        {
"name": "plugin-cache.basePackage",
"type": "java.lang.String",
"description": "文档扫描包路径。"        },
        {
"name": "plugin-cache.title",
"type": "java.lang.String",
"description": "Plugin Cache 插件工厂"        },
        {
"name": "plugin-cache.description",
"type": "java.lang.String",
"description": "插件工厂描述"        },
        {
"name": "plugin-cache.version",
"type": "java.lang.String",
"defaultValue": "V1.0",
"description": "版本。"        }
    ]
}


大部分元数据文件是在编译时通过处理所有带注释的项目自动生成的

@ConfigurationProperties 可以查看先前的文章

@EnableConfigurationProperties 的工作原理

参考下面 properties 表格进行配置上的理解。

image.png

deprecation 每个 properties 元素的属性中包含的 JSON 对象可以包含以下属性:

image.png

▐ 插件工厂配置注入

@Data@Component@ConfigurationProperties(PluginCacheProperties.PREFIX)
classPluginCacheProperties {
publicstaticfinalStringPREFIX="plugin-cache";
/*** 文档扫描包路径*/privateStringbasePackage="";
/*** Plugin Cache 插件工厂*/privateStringtitle="Plugin Cache 插件工厂";
/*** 服务文件介绍*/privateStringdescription="插件缓存说明";
/*** 版本*/privateStringversion="V1.0";
/*** 默认编码*/privateStringcharset="UTF-8";
}

复制代码

▐ 配置应用

image.png

image.png


三、总结


对于元数据配置,理解起来不难!主要为了组件库为了让使用者更加优化使用提供的一套 IDEA 提示说明。借此我们在开放私有组件或者插件的时候在对于配置项可对外提供开放能力,可以根据元数据配置来完善 IDEA 提示说明。这样其他人用起来的时候能很快知道对应的参数的配置类型以及相关的配置属性说明。总结本篇文章希望对从事相关工作的同学能够有所帮助或者启发


往期推荐

相关文章
|
2月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
2天前
|
Java 开发者 微服务
手写模拟Spring Boot自动配置功能
【11月更文挑战第19天】随着微服务架构的兴起,Spring Boot作为一种快速开发框架,因其简化了Spring应用的初始搭建和开发过程,受到了广大开发者的青睐。自动配置作为Spring Boot的核心特性之一,大大减少了手动配置的工作量,提高了开发效率。
13 0
|
29天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
39 4
|
1月前
|
Java 数据库连接 Maven
springBoot:项目建立&配置修改&yaml的使用&resource 文件夹(二)
本文档介绍了如何创建一个基于Maven的项目,并配置阿里云仓库、数据库连接、端口号、自定义启动横幅及多环境配置等。同时,详细说明了如何使用YAML格式进行配置,以及如何处理静态资源和模板文件。文档还涵盖了Spring Boot项目的`application.properties`和`application.yaml`文件的配置方法,包括设置数据库驱动、URL、用户名、密码等关键信息,以及如何通过配置文件管理不同环境下的应用设置。
|
26天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
34 0
|
6天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
18 2
 SpringBoot入门(7)- 配置热部署devtools工具
|
5天前
|
Java 数据库连接
SpringBoot配置多数据源实战
第四届光学与机器视觉国际学术会议(ICOMV 2025) 2025 4th International Conference on Optics and Machine Vision
29 8
|
3天前
|
Java 数据库连接 数据库
springboot启动配置文件-bootstrap.yml常用基本配置
以上是一些常用的基本配置项,在实际应用中可能会根据需求有所变化。通过合理配置 `bootstrap.yml`文件,可以确保应用程序在启动阶段加载正确的配置,并顺利启动运行。
8 2
|
14天前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
40 3
|
25天前
|
druid Java Maven