Введение. JAR-файлы Spring Boot содержат файлы метаданных, содержащие сведения обо всех поддерживаемых свойствах конфигурации. Этот файл предназначен для разработчиков IDE для предоставления контекстно-зависимой справки и "завершения кода". В заключение, эта статья надеется быть полезной или вдохновляющей для студентов, которые занимаются смежной работой.
1. Предпосылки
отладка в последнее времяreactive-steams
посмотреть исходный кодspring-boot
в исходном пакете
-
spring-configuration-metadata.json
-
additional-spring-configuration-metadata.json
Честно говоря, в основномmetadata
Заинтриговал меня, потому что в последнее время я долго боролся с управлением метаданными движка.
Я проверил официальную информацию и обнаружил, что это также расширение конфигурации метаданных, предоставляемое SpringBoot, но метаданные здесь не похожи на метаданные, управляемые компонентом Spring.
▐ Официальное объяснение
Это можно просто понять как конфигурацию этого типа метаданных, чтобы позволить нам использовать процесс разработки IDEA для использованияapplication.properties
илиapplication.yml
При настройке больше аннотаций, что нам удобнее разрабатывать и использовать.
▐ Официальный кейс
Возьмите нашу общую конфигурацию ведения журнала в качестве примера.
-
конфигурация метаданных
- определить конфигурацию
2. Примеры применения
▐ Определение заводской конфигурации плагина
Файлы метаданных конфигурации находятся в папке jar.META-INF/spring-configuration-metadata.json
Они используют простой формат JSON с элементами, отнесенными к категории «группы» или «свойства».
{
"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
Обратитесь к таблице свойств ниже для понимания конфигурации.
Объект JSON, содержащийся в свойствах устаревания каждого элемента свойств, может содержать следующие свойства:
▐ Внедрение заводской конфигурации плагина
@Data
@Component
@ConfigurationProperties(PluginCacheProperties.PREFIX)
class PluginCacheProperties {
public static final String PREFIX = "plugin-cache";
/**
* 文档扫描包路径
*/
private String basePackage = "";
/**
* Plugin Cache 插件工厂
*/
private String title = "Plugin Cache 插件工厂";
/**
* 服务文件介绍
*/
private String description = "插件缓存说明";
/**
* 版本
*/
private String version = "V1.0";
/**
* 默认编码
*/
private String charset="UTF-8";
}
▐ Настройте приложение
3. Резюме
Что касается конфигурации метаданных, это несложно понять! Основная цель — предоставить набор подсказок IDEA для библиотеки компонентов, чтобы пользователи могли использовать ее более оптимально. Таким образом, когда мы открываем частные компоненты или подключаемые модули, мы можем предоставлять открытые возможности для элементов конфигурации внешнему миру и можем улучшать подсказки IDEA на основе конфигурации метаданных. Таким образом, когда другие люди используют его, они могут быстро узнать тип конфигурации соответствующего параметра и описание соответствующего атрибута конфигурации. В заключение, эта статья надеется быть полезной или вдохновляющей для студентов, которые занимаются смежной работой.