元数据格式

配置元数据文件位于元步兵/spring-configuration-metadata.json. 它们使用JSON格式,将项目分为“组”或“属性”,附加值提示归为“提示”,忽略的项目归为“忽略”,如下示例所示:spring-doc.cadn.net.cn

{"groups": [
	{
		"name": "server",
		"type": "org.springframework.boot.web.server.autoconfigure.ServerProperties",
		"sourceType": "org.springframework.boot.web.server.autoconfigure.ServerProperties"
	},
	{
		"name": "spring.jpa.hibernate",
		"type": "org.springframework.boot.jpa.autoconfigure.JpaProperties$Hibernate",
		"sourceType": "org.springframework.boot.jpa.autoconfigure.JpaProperties",
		"sourceMethod": "getHibernate()"
	}
	...
],"properties": [
	{
		"name": "server.port",
		"type": "java.lang.Integer",
		"sourceType": "org.springframework.boot.web.server.autoconfigure.ServerProperties"
	},
	{
		"name": "server.address",
		"type": "java.net.InetAddress",
		"sourceType": "org.springframework.boot.web.server.autoconfigure.ServerProperties"
	},
	{
		  "name": "spring.jpa.hibernate.ddl-auto",
		  "type": "java.lang.String",
		  "description": "DDL mode. This is actually a shortcut for the \"hibernate.hbm2ddl.auto\" property.",
		  "sourceType": "org.springframework.boot.jpa.autoconfigure.JpaProperties$Hibernate"
	}
	...
],"hints": [
	{
		"name": "spring.jpa.hibernate.ddl-auto",
		"values": [
			{
				"value": "none",
				"description": "Disable DDL handling."
			},
			{
				"value": "validate",
				"description": "Validate the schema, make no changes to the database."
			},
			{
				"value": "update",
				"description": "Update the schema if necessary."
			},
			{
				"value": "create",
				"description": "Create the schema and destroy previous data."
			},
			{
				"value": "create-drop",
				"description": "Create and then destroy the schema at the end of the session."
			}
		]
	}
	...
],"ignored": {
	"properties": [
		{
			"name": "server.ignored"
		}
		...
	]
}}

每个“属性”都是用户用指定值指定的配置项。 例如server.portserver.address可能在你的application.properties/application.yaml如下:spring-doc.cadn.net.cn

server.port=9090
server.address=127.0.0.1
server:
  port: 9090
  address: 127.0.0.1

“组”是更高层次的项,它们本身不指定值,而是为属性提供上下文分组。例如,server.portserver.address属性是服务器群。spring-doc.cadn.net.cn

并非要求每个“财产”都有“群体”。有些财产可能独立存在。

“提示”是用于帮助用户配置特定属性的额外信息。 例如,当开发者配置spring.jpa.hibernate.ddl-auto属性,一个工具可以利用提示为没有,驗證,更新,创造创作-丢弃值。spring-doc.cadn.net.cn

最后,“忽略”是指那些被故意忽略的项目。 本节内容通常来自额外的元数据spring-doc.cadn.net.cn

组属性

包含在数组可以包含下表中显示的属性:spring-doc.cadn.net.cn

名称 类型 目的

名称spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

这是该团体的全名。 这一属性是必须的。spring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

该组数据类型的类名称。 例如,如果该群基于一个注释为@ConfigurationProperties属性将包含该类的完全限定名称。 如果它是基于@Bean方法,它就是该方法的返回类型。 如果类型未知,属性可以省略。spring-doc.cadn.net.cn

描述spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

可以向用户展示的小组简短描述。 如果没有描述,可以省略。 建议描述简短,第一行提供简明的总结。 描述的最后一行应以句号结尾(.).spring-doc.cadn.net.cn

来源类型spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

贡献该组的来源类别名称。 例如,如果该群基于@Bean注释为@ConfigurationProperties,该属性将包含@Configuration包含该方法的类。 如果源类型未知,属性可以省略。spring-doc.cadn.net.cn

sourceMethodspring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

贡献该组的方法的全名(包括括号和参数类型)(例如,一个@ConfigurationProperties注释@Bean方法)。 如果源方法未知,可以省略。spring-doc.cadn.net.cn

属性

包含在性能array 可以包含下表中描述的属性:spring-doc.cadn.net.cn

名称 类型 目的

名称spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

房产的全名。 名称采用小写的句点分隔形式(例如,server.address). 这一属性是必须的。spring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

属性数据类型的完整签名(例如,字符串)也是一个完整的泛型(例如java.util.Map<java.lang.String,com.example.MyEnum>). 你可以用这个属性指导用户输入的值类型。 为了保持一致性,原语的类型通过使用其包装对应物来指定(例如,布尔成为布尔). 注意,该类可能是复类型,从字符串因为价值被绑定。 如果类型不明,可以省略。spring-doc.cadn.net.cn

描述spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

可以向用户展示的房产简短描述。 如果没有描述,可以省略。 建议描述简短,第一行提供简明的总结。 描述的最后一行应以句号结尾(.).spring-doc.cadn.net.cn

来源类型spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

贡献该属性的源的类名。 例如,如果该属性来自一个注释为@ConfigurationProperties,该属性包含该类的完全限定名称。 如果来源类型未知,可以省略。spring-doc.cadn.net.cn

defaultValuespring-doc.cadn.net.cn

对象spring-doc.cadn.net.cn

默认值,如果未指定属性,则使用默认值。 如果属性类型是数组,则可以是值数组。 如果默认值未知,则可以省略。spring-doc.cadn.net.cn

折旧spring-doc.cadn.net.cn

折旧spring-doc.cadn.net.cn

请明确该属性是否已被弃用。 如果该字段未被弃用或该信息未知,则可省略。 下表提供了更多关于折旧属性。spring-doc.cadn.net.cn

包含在折旧每个属性性能元素可以包含以下属性:spring-doc.cadn.net.cn

名称 类型 目的

水平spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

弃用级别可以是以下两种警告(默认值)或错误. 当一个物业具有警告弃用级别,它应该仍然绑定在环境中。 然而,当它拥有错误按折旧级别,该物业不再受管理且不受约束。spring-doc.cadn.net.cn

原因spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

简要说明该房产被废弃的原因。 如果没有理由,可以省略。 建议描述简短,第一行提供简明的总结。 描述的最后一行应以句号结尾(.).spring-doc.cadn.net.cn

更换spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

替换该弃用财产的财产的全名。 如果该房产没有替代品,可能会被省略。spring-doc.cadn.net.cn

因为spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

即该财产被弃用的版本。 可以省略。spring-doc.cadn.net.cn

在 Spring Boot 1.3 之前,一首单曲荒废的可以使用布尔属性代替折旧元素。 该功能仍以被弃用的方式支持,不应再使用。 如果没有理由和替代,则空折旧对象应该被设置。

废弃也可以在代码中声明式地指定,通过添加@DeprecatedConfigurationProperty对获取器进行注释,暴露弃用性质。 例如,假设my.app.target该地产令人困惑,因此更名为my.app.name. 以下示例展示了如何处理这种情况:spring-doc.cadn.net.cn

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;

@ConfigurationProperties("my.app")
public class MyProperties {

	private String name;

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Deprecated
	@DeprecatedConfigurationProperty(replacement = "my.app.name", since = "1.2.0")
	public String getTarget() {
		return this.name;
	}

	@Deprecated
	public void setTarget(String target) {
		this.name = target;
	}

}
import org.springframework.boot.context.properties.ConfigurationProperties
import org.springframework.boot.context.properties.DeprecatedConfigurationProperty

@ConfigurationProperties("my.app")
class MyProperties(val name: String?) {

	var target: String? = null
		@Deprecated("") @DeprecatedConfigurationProperty(replacement = "my.app.name", since = "1.2.0") get
		@Deprecated("") set

}
没有办法设置水平.警告总是假设,因为代码仍在处理该属性。

上述代码确保被弃用属性仍然有效(委托给名称幕后财产)。 一旦获取目标setTarget方法可以从你的公共API中移除,元数据中的自动弃用提示也会消失。 如果你想保持提示,可以手动添加带有错误弃用级别确保用户仍能了解该属性。 当更换提供。spring-doc.cadn.net.cn

提示属性

包含在提示数组可以包含下表中显示的属性:spring-doc.cadn.net.cn

名称 类型 目的

名称spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

这是该暗示所指物业的全名。 名称采用小写的句号分隔形式(例如spring.mvc.servlet.path). 如果该性质指涉一个映射(例如:system.contexts),提示要么适用于映射的键system.contexts.keys)或 (system.contexts.values)的地图。 这一属性是必须的。spring-doc.cadn.net.cn

spring-doc.cadn.net.cn

价值提示[]spring-doc.cadn.net.cn

价值提示对象(见下表描述)。 每个条目定义了数值,并且可能包含描述。spring-doc.cadn.net.cn

提供商spring-doc.cadn.net.cn

ValueProvider[]spring-doc.cadn.net.cn

价值提供者对象(本文后面将详细说明)。 每个条目定义提供者的名称及其参数(如有)。spring-doc.cadn.net.cn

包含在每个属性提示元素可以包含下表中描述的属性:spring-doc.cadn.net.cn

名称 类型 目的

spring-doc.cadn.net.cn

对象spring-doc.cadn.net.cn

提示所指元素的有效值。 如果属性的类型是数组,也可以是数组。 这一属性是必须的。spring-doc.cadn.net.cn

描述spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

简要描述可以向用户展示的价值。 如果没有描述,可以省略。 建议描述简短,第一行提供简明的总结。 描述的最后一行应以句号结尾(.).spring-doc.cadn.net.cn

包含在提供商每个属性提示元素可以包含下表中描述的属性:spring-doc.cadn.net.cn

名称 类型 目的

名称spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

提供额外内容支持的服务提供者名称。spring-doc.cadn.net.cn

参数spring-doc.cadn.net.cn

JSON 对象spring-doc.cadn.net.cn

任何提供者支持的额外参数(详情请查阅提供者文档)。spring-doc.cadn.net.cn

被忽视的属性

忽视对象可以包含下表中显示的属性:spring-doc.cadn.net.cn

名称 类型 目的

性能spring-doc.cadn.net.cn

物品忽略[]spring-doc.cadn.net.cn

由 ItemIgnore 对象定义的忽略属性列表(见下表描述)。每个条目定义了被忽略属性的名称。spring-doc.cadn.net.cn

包含在性能每个属性忽视元素可以包含下表中描述的属性:spring-doc.cadn.net.cn

名称 类型 目的

名称spring-doc.cadn.net.cn

字符串spring-doc.cadn.net.cn

忽略房产的全名。 名称采用小写的句号分隔形式(例如spring.mvc.servlet.path). 这一属性是必须的。spring-doc.cadn.net.cn

重复元数据项

具有相同“属性”和“组”名称的对象可以在元数据文件中多次出现。 例如,你可以将两个独立的类绑定到同一个前缀上,每个类的属性名称可能重叠。 虽然同一个名字在元数据中多次出现不应常见,但元数据的消费者应确保支持这些内容。spring-doc.cadn.net.cn