Skip to content

Repository files navigation

Spring Properties Navigator

Build Version Downloads

Spring Properties Navigator is an IntelliJ IDEA plugin that adds reliable, bidirectional navigation between Spring configuration keys and the Java code that defines or consumes them. It works in both .properties and YAML (application.yml) files.

Install

Install from the JetBrains Marketplace — in your IDE open Settings > Plugins > Marketplace, search for Spring Properties Navigator, and click Install. Or get it from the web: plugins.jetbrains.com/plugin/32536-spring-properties-navigator.

To install a local build from disk instead, see Install Locally below.

Features

  • Navigates .properties and YAML keys to @ConfigurationProperties classes and bindable members.
  • Reverse navigation: gutter icons on @ConfigurationProperties members and @Value("${...}") injections jump to the configuration entries that set them.
  • Supports Spring relaxed names such as display-name -> displayName.
  • Supports indexed collection paths such as items[0].display-name, and YAML sequences.
  • Resolves nested Java fields, record components, setters, and getters.
  • Unwraps common containers: arrays, List<T>, Map<K,V>, and Optional<T>.
  • Navigates keys backed only by direct @Value("${...}") usages.
  • Hides Spring Boot unresolved-property warnings (in .properties and YAML) only when the plugin can resolve the full key.
  • Configurable under Settings | Tools | Spring Properties Navigator.
  • Includes light and dark plugin logos for the IDE plugin manager.

YAML support activates automatically when the bundled YAML plugin is enabled; the core .properties features work without it.

Example

Given:

@ConfigurationProperties(prefix = "sample.catalog")
public class CatalogProperties {
    private List<CatalogItemProperties> items;

    public List<CatalogItemProperties> getItems() {
        return items;
    }

    public void setItems(List<CatalogItemProperties> items) {
        this.items = items;
    }
}

and:

public class CatalogItemProperties {
    private String displayName;

    public String getDisplayName() {
        return displayName;
    }

    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }
}

this property key is navigable:

sample.catalog.items[0].display-name=Featured item

The equivalent YAML is navigable too:

sample:
  catalog:
    items:
      - display-name: Featured item

Expected targets:

  • sample.catalog -> CatalogProperties
  • items -> CatalogProperties.items
  • display-name -> CatalogItemProperties.displayName

Reverse navigation works as well: a gutter icon next to CatalogProperties, its items member, or any @Value("${...}") injection jumps to the matching keys in your .properties and YAML files.

Direct @Value usages are also supported:

public TaskRunner(@Value("${sample.task.retry-count}") int retryCount) {
}
sample.task.retry-count=5

Requirements

  • IntelliJ IDEA 2026.1.x or another compatible IntelliJ Platform IDE (build 261 or newer).
  • Java 21 for building the plugin.
  • Bundled Java and Properties IntelliJ plugins enabled in the target IDE.
  • The bundled YAML plugin enabled to navigate YAML files (optional; .properties support works without it).

Build

Use the production build task:

cd <repo-root>
./gradlew productionBuild --no-configuration-cache

The plugin ZIP is created at:

build/distributions/spring-properties-navigator-1.0.0.zip

By default, Gradle resolves the IntelliJ Platform version declared in build.gradle. To build against a local IDE installation instead, pass localIdeaPath:

./gradlew productionBuild -PlocalIdeaPath="/path/to/IntelliJ IDEA.app" --no-configuration-cache

You can also set INTELLIJ_IDEA_PATH to avoid passing the property on every build.

Run In A Sandbox IDE

cd <repo-root>
./gradlew runIde

In the launched IDE:

  1. Open a Spring Boot project.
  2. Wait for project import and indexing.
  3. Open an .properties file.
  4. Cmd-click a property key segment, or use Navigate > Declaration or Usages.

Install Locally

  1. Run ./gradlew productionBuild --no-configuration-cache.
  2. Open IntelliJ IDEA.
  3. Go to Settings > Plugins.
  4. Open the gear menu and choose Install Plugin from Disk....
  5. Select build/distributions/spring-properties-navigator-1.0.0.zip.
  6. Restart the IDE.

Settings

Settings | Tools | Spring Properties Navigator exposes two toggles (both on by default):

  • Hide "Cannot resolve configuration property" warnings for keys this plugin resolves.
  • Show gutter icons on Java members that navigate to configuration files.

Testing

The project ships a unit and IDE test suite. Run it with:

./gradlew test

It covers the property-key parser, relaxed-name normalization, @Value placeholder parsing, and IDE-level navigation for both .properties and YAML, plus whole-key resolution and the reverse-navigation gutter icons.

Continuous integration (GitHub Actions) builds and tests on every push and pull request via .github/workflows/build.yml; pushing a v* tag publishes to the Marketplace via .github/workflows/release.yml.

Scope

This plugin focuses on navigation and warning suppression for keys it can resolve. It does not provide completion, rename refactoring, or property generation.

License

Licensed under the MIT License.

About

IntelliJ IDEA plugin for bidirectional navigation between Spring configuration keys (.properties & YAML) and the Java that defines or consumes them — @ConfigurationProperties and @value("${...}")

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages