What Spring Boot Configuration Metadata Means

Learn how configuration metadata powers completion, descriptions, type hints, and custom settings.

Learn how Spring Boot configuration metadata helps IntelliJ IDEA provide completion, descriptions, type hints, and invalid key checks.

Why metadata matters

Spring Boot configuration completion is not just string guessing. Many keys come from configuration metadata, which describes prefixes, property names, types, descriptions, and default values. IDEs and plugins read this information to provide accurate suggestions in application.yml and application.properties.

If a key is missing from completion, possible reasons include a missing dependency, unsupported Spring Boot version, metadata not being generated, or the current file not being recognized as a Spring Boot configuration file.

Common metadata sources

Official Spring Boot starters include metadata for common settings. Custom classes annotated with @ConfigurationProperties can also generate their own metadata through the build process. This allows internal configuration to receive completion and type hints as well.

If you maintain a public starter or an internal company starter, adding metadata greatly improves usability. Users do not need to inspect source code to guess keys, and they can see descriptions and available options inside the IDE.

@ConfigurationProperties(prefix = "app.storage")
public class StorageProperties {
    private String endpoint;
    private boolean enabled;
}

How to diagnose incomplete completion

First confirm dependencies are imported correctly by the IDE, then check whether the configuration class uses the expected prefix. For custom configuration, rebuild the project so metadata files are regenerated.

If a third-party starter does not provide metadata, the IDE may still recognize some common keys, but descriptions, types, and defaults will be incomplete. That is not a problem with the YAML file itself.

Related guides

Independently maintained by ErickPang. Not affiliated with Spring, JetBrains, or Broadcom.