此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.1Spring中文文档

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.1Spring中文文档

若要改善用户体验并进一步帮助用户配置给定属性,可以提供以下附加元数据:Spring中文文档

  • 描述属性的潜在值列表。Spring中文文档

  • 关联提供程序,将定义良好的语义附加到属性,以便工具可以根据项目的上下文发现潜在值列表。Spring中文文档

价值提示

每个提示的属性都是指属性的属性。 在前面所示的初始示例中,我们为属性提供了五个值:、 、 、 和 。 每个值也可以有一个说明。namenamespring.jpa.hibernate.ddl-autononevalidateupdatecreatecreate-dropSpring中文文档

如果您的属性是 类型,则可以为键和值提供提示(但不能为地图本身提供提示)。 特殊和后缀必须分别引用键和值。Map.keys.valuesSpring中文文档

假设将魔术值映射到整数,如以下示例所示:my.contextsStringSpring中文文档

import java.util.Map;

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

@ConfigurationProperties("my")
public class MyProperties {

	private Map<String, Integer> contexts;

	// getters/setters ...

	public Map<String, Integer> getContexts() {
		return this.contexts;
	}

	public void setContexts(Map<String, Integer> contexts) {
		this.contexts = contexts;
	}

}

幻值是(在本例中)是 和 。 为了为密钥提供额外的内容帮助,您可以将以下 JSON 添加到模块的手动元数据中:sample1sample2Spring中文文档

{"hints": [
	{
		"name": "my.contexts.keys",
		"values": [
			{
				"value": "sample1"
			},
			{
				"value": "sample2"
			}
		]
	}
]}
建议改用 an for 这两个值。 如果您的 IDE 支持它,那么这是迄今为止最有效的自动完成方法。Enum
建议改用 an for 这两个值。 如果您的 IDE 支持它,那么这是迄今为止最有效的自动完成方法。Enum

价值提供者

提供程序是将语义附加到属性的有效方法。 在本节中,我们将定义可用于您自己的提示的官方提供商。 但是,您最喜欢的 IDE 可能会实现其中的一些或不实现其中的任何一种。 此外,它最终可以提供自己的。Spring中文文档

由于这是一项新功能,IDE 供应商必须了解它的工作原理。 采用时间自然会有所不同。

下表汇总了受支持的提供程序列表:Spring中文文档

名字 描述

anySpring中文文档

允许提供任何附加值。Spring中文文档

class-referenceSpring中文文档

自动完成项目中可用的类。 通常由参数指定的基类约束。targetSpring中文文档

handle-asSpring中文文档

处理属性,就好像它是由必需参数定义的类型定义的一样。targetSpring中文文档

logger-nameSpring中文文档

自动完成有效的记录器名称和记录器组。 通常,当前项目中可用的包和类名称以及定义的组可以自动完成。Spring中文文档

spring-bean-referenceSpring中文文档

自动完成当前项目中可用的 Bean 名称。 通常由参数指定的基类约束。targetSpring中文文档

spring-profile-nameSpring中文文档

自动完成项目中可用的 Spring 配置文件名称。Spring中文文档

对于给定属性,只能有一个提供程序处于活动状态,但如果它们都可以以某种方式管理该属性,则可以指定多个提供程序。 请确保将功能最强大的提供程序放在首位,因为 IDE 必须使用它可以处理的 JSON 部分中的第一个提供程序。 如果不支持给定属性的提供程序,则也不会提供特殊内容帮助。

任何

特殊的任何提供程序值允许提供任何其他值。 如果支持,则应应用基于属性类型的常规值验证。Spring中文文档

如果您有一个值列表,并且任何额外的值仍应被视为有效,则通常使用此提供程序。Spring中文文档

以下示例提供 和 作为自动完成值:onoffsystem.stateSpring中文文档

{"hints": [
	{
		"name": "system.state",
		"values": [
			{
				"value": "on"
			},
			{
				"value": "off"
			}
		],
		"providers": [
			{
				"name": "any"
			}
		]
	}
]}

请注意,在前面的示例中,还允许使用任何其他值。Spring中文文档

类参考

类引用提供程序自动完成项目中可用的类。 此提供程序支持以下参数:Spring中文文档

参数 类型 默认值 描述

targetSpring中文文档

String (Class)Spring中文文档

没有Spring中文文档

应分配给所选值的类的完全限定名称。 通常用于筛选出非候选类。 请注意,此信息可以由类型本身提供,方法是公开具有适当上限的类。Spring中文文档

concreteSpring中文文档

booleanSpring中文文档

Spring中文文档

指定是否仅将具体类视为有效候选项。Spring中文文档

以下元数据代码段对应于定义要使用的类名的标准属性:server.servlet.jsp.class-nameJspServletSpring中文文档

{"hints": [
	{
		"name": "server.servlet.jsp.class-name",
		"providers": [
			{
				"name": "class-reference",
				"parameters": {
					"target": "jakarta.servlet.http.HttpServlet"
				}
			}
		]
	}
]}

句柄为

句柄作为提供程序允许您将属性的类型替换为更高级的类型。 这通常发生在属性具有类型时,因为您不希望配置类依赖于可能不在类路径上的类。 此提供程序支持以下参数:java.lang.StringSpring中文文档

参数 类型 默认值 描述

targetSpring中文文档

String (Class)Spring中文文档

没有Spring中文文档

要为属性考虑的类型的完全限定名称。 此参数是必需的。Spring中文文档

可以使用以下类型:Spring中文文档

  • Any :列出属性的可能值。 (建议使用类型定义属性,因为 IDE 不需要进一步的提示即可自动完成值)java.lang.EnumEnumSpring中文文档

  • java.nio.charset.Charset:支持字符集/编码值的自动补全(例如UTF-8)Spring中文文档

  • java.util.Locale:自动完成语言环境(例如en_US)Spring中文文档

  • org.springframework.util.MimeType:支持内容类型值的自动补全(如text/plain)Spring中文文档

  • org.springframework.core.io.Resource:支持自动完成 Spring 的 Resource 抽象,以引用文件系统或类路径上的文件(例如classpath:/sample.properties)Spring中文文档

如果可以提供多个值,请使用 or Array 类型向 IDE 介绍它。Collection

以下元数据代码段对应于定义要使用的更改日志路径的标准属性。 它实际上在内部用作 a,但不能公开,因为我们需要保留原始的 String 值才能将其传递给 Liquibase API。spring.liquibase.change-logorg.springframework.core.io.ResourceSpring中文文档

{"hints": [
	{
		"name": "spring.liquibase.change-log",
		"providers": [
			{
				"name": "handle-as",
				"parameters": {
					"target": "org.springframework.core.io.Resource"
				}
			}
		]
	}
]}

记录器名称

记录器名称提供程序会自动完成有效的记录器名称和记录器组。 通常,当前项目中可用的包和类名可以自动完成。 如果组已启用(默认),并且在配置中标识了自定义记录器组,则应为其提供自动完成。 特定框架可能具有额外的魔术记录器名称,这些名称也可以支持。Spring中文文档

此提供程序支持以下参数:Spring中文文档

参数 类型 默认值 描述

groupSpring中文文档

booleanSpring中文文档

trueSpring中文文档

指定是否应考虑已知组。Spring中文文档

由于记录器名称可以是任意名称,因此此提供程序应允许任何值,但可以突出显示项目类路径中不可用的有效包和类名称。Spring中文文档

以下元数据代码段对应于标准属性。 键是记录器名称,值对应于标准日志级别或任何自定义级别。 由于 Spring Boot 定义了一些开箱即用的记录器组,因此为这些组添加了专用的价值提示。logging.levelSpring中文文档

{"hints": [
	{
		"name": "logging.level.keys",
		"values": [
			{
				"value": "root",
				"description": "Root logger used to assign the default logging level."
			},
			{
				"value": "sql",
				"description": "SQL logging group including Hibernate SQL logger."
			},
			{
				"value": "web",
				"description": "Web logging group including codecs."
			}
		],
		"providers": [
			{
				"name": "logger-name"
			}
		]
	},
	{
		"name": "logging.level.values",
		"values": [
			{
				"value": "trace"
			},
			{
				"value": "debug"
			},
			{
				"value": "info"
			},
			{
				"value": "warn"
			},
			{
				"value": "error"
			},
			{
				"value": "fatal"
			},
			{
				"value": "off"
			}

		],
		"providers": [
			{
				"name": "any"
			}
		]
	}
]}

Spring Bean 参考

spring-bean-reference 提供程序会自动完成在当前项目配置中定义的 bean。 此提供程序支持以下参数:Spring中文文档

参数 类型 默认值 描述

targetSpring中文文档

String (Class)Spring中文文档

没有Spring中文文档

应分配给候选项的 Bean 类的完全限定名称。 通常用于过滤掉非候选 Bean。Spring中文文档

以下元数据代码段对应于定义要使用的 Bean 名称的标准属性:spring.jmx.serverMBeanServerSpring中文文档

{"hints": [
	{
		"name": "spring.jmx.server",
		"providers": [
			{
				"name": "spring-bean-reference",
				"parameters": {
					"target": "javax.management.MBeanServer"
				}
			}
		]
	}
]}
活页夹不知道元数据。 如果提供该提示,则仍需要使用 将 Bean 名称转换为实际的 Bean 引用。ApplicationContext

Spring 配置文件名称

spring-profile-name 提供程序会自动完成在当前项目配置中定义的 Spring 配置文件。Spring中文文档

以下元数据代码段对应于定义要启用的 Spring 配置文件名称的标准属性:spring.profiles.activeSpring中文文档

{"hints": [
	{
		"name": "spring.profiles.active",
		"providers": [
			{
				"name": "spring-profile-name"
			}
		]
	}
]}
由于这是一项新功能,IDE 供应商必须了解它的工作原理。 采用时间自然会有所不同。
名字 描述

anySpring中文文档

允许提供任何附加值。Spring中文文档

class-referenceSpring中文文档

自动完成项目中可用的类。 通常由参数指定的基类约束。targetSpring中文文档

handle-asSpring中文文档

处理属性,就好像它是由必需参数定义的类型定义的一样。targetSpring中文文档

logger-nameSpring中文文档

自动完成有效的记录器名称和记录器组。 通常,当前项目中可用的包和类名称以及定义的组可以自动完成。Spring中文文档

spring-bean-referenceSpring中文文档

自动完成当前项目中可用的 Bean 名称。 通常由参数指定的基类约束。targetSpring中文文档

spring-profile-nameSpring中文文档

自动完成项目中可用的 Spring 配置文件名称。Spring中文文档

对于给定属性,只能有一个提供程序处于活动状态,但如果它们都可以以某种方式管理该属性,则可以指定多个提供程序。 请确保将功能最强大的提供程序放在首位,因为 IDE 必须使用它可以处理的 JSON 部分中的第一个提供程序。 如果不支持给定属性的提供程序,则也不会提供特殊内容帮助。
参数 类型 默认值 描述

targetSpring中文文档

String (Class)Spring中文文档

没有Spring中文文档

应分配给所选值的类的完全限定名称。 通常用于筛选出非候选类。 请注意,此信息可以由类型本身提供,方法是公开具有适当上限的类。Spring中文文档

concreteSpring中文文档

booleanSpring中文文档

Spring中文文档

指定是否仅将具体类视为有效候选项。Spring中文文档

参数 类型 默认值 描述

targetSpring中文文档

String (Class)Spring中文文档

没有Spring中文文档

要为属性考虑的类型的完全限定名称。 此参数是必需的。Spring中文文档

如果可以提供多个值,请使用 or Array 类型向 IDE 介绍它。Collection
参数 类型 默认值 描述

groupSpring中文文档

booleanSpring中文文档

trueSpring中文文档

指定是否应考虑已知组。Spring中文文档

参数 类型 默认值 描述

targetSpring中文文档

String (Class)Spring中文文档

没有Spring中文文档

应分配给候选项的 Bean 类的完全限定名称。 通常用于过滤掉非候选 Bean。Spring中文文档

活页夹不知道元数据。 如果提供该提示,则仍需要使用 将 Bean 名称转换为实际的 Bean 引用。ApplicationContext