Class ConfigTreePropertySource

java.lang.Object
org.springframework.core.env.PropertySource<T>
org.springframework.core.env.EnumerablePropertySource<Path>
org.springframework.boot.env.ConfigTreePropertySource
All Implemented Interfaces:
OriginLookup<String>

public class ConfigTreePropertySource extends org.springframework.core.env.EnumerablePropertySource<Path> implements OriginLookup<String>
PropertySource backed by a directory tree that contains files for each value. The PropertySource will recursively scan a given source directory and expose a property for each file found. The property name will be the filename, and the property value will be the contents of the file.

Directories are only scanned when the source is first created. The directory is not monitored for updates, so files should not be added or removed. However, the contents of a file can be updated as long as the property source was created with a ConfigTreePropertySource.Option.ALWAYS_READ option. Nested directories are included in the source, but with a '.' rather than '/' used as the path separator.

Property values are returned as ConfigTreePropertySource.Value instances which allows them to be treated either as an InputStreamSource or as a CharSequence. In addition, if used with an Environment configured with an ApplicationConversionService, property values can be converted to a String or byte[].

This property source is typically used to read Kubernetes configMap volume mounts.

Since:
2.4.0
  • Constructor Details

    • ConfigTreePropertySource

      public ConfigTreePropertySource(String name, Path sourceDirectory)
      Create a new ConfigTreePropertySource instance.
      Parameters:
      name - the name of the property source
      sourceDirectory - the underlying source directory
    • ConfigTreePropertySource

      public ConfigTreePropertySource(String name, Path sourceDirectory, ConfigTreePropertySource.Option... options)
      Create a new ConfigTreePropertySource instance.
      Parameters:
      name - the name of the property source
      sourceDirectory - the underlying source directory
      options - the property source options
  • Method Details

    • getPropertyNames

      public String[] getPropertyNames()
      Specified by:
      getPropertyNames in class org.springframework.core.env.EnumerablePropertySource<Path>
    • getProperty

      public ConfigTreePropertySource.Value getProperty(String name)
      Specified by:
      getProperty in class org.springframework.core.env.PropertySource<Path>
    • getOrigin

      public Origin getOrigin(String name)
      Description copied from interface: OriginLookup
      Return the origin of the given key or null if the origin cannot be determined.
      Specified by:
      getOrigin in interface OriginLookup<String>
      Parameters:
      name - the key to lookup
      Returns:
      the origin of the key or null
    • isImmutable

      public boolean isImmutable()
      Description copied from interface: OriginLookup
      Return true if this lookup is immutable and has contents that will never change.
      Specified by:
      isImmutable in interface OriginLookup<String>
      Returns:
      if the lookup is immutable