org.springframework.boot.env

Class ConfigTreePropertySource

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


    public class ConfigTreePropertySource
    extends org.springframework.core.env.EnumerablePropertySource<java.nio.file.Path>
    implements OriginLookup<java.lang.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
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class and Description
      static class  ConfigTreePropertySource.Option
      Property source options.
      static interface  ConfigTreePropertySource.Value
      A value returned from the property source which exposes the contents of the property file.
      • Nested classes/interfaces inherited from class org.springframework.core.env.PropertySource

        org.springframework.core.env.PropertySource.StubPropertySource
    • Field Summary

      • Fields inherited from class org.springframework.core.env.PropertySource

        logger, name, source
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      Origin getOrigin(java.lang.String name)
      Return the origin of the given key or null if the origin cannot be determined.
      ConfigTreePropertySource.Value getProperty(java.lang.String name) 
      java.lang.String[] getPropertyNames() 
      boolean isImmutable()
      Return true if this lookup is immutable and has contents that will never change.
      • Methods inherited from class org.springframework.core.env.EnumerablePropertySource

        containsProperty
      • Methods inherited from class org.springframework.core.env.PropertySource

        equals, getName, getSource, hashCode, named, toString
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ConfigTreePropertySource

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

        public ConfigTreePropertySource(java.lang.String name,
                                        java.nio.file.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 Detail

      • getPropertyNames

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

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

        public Origin getOrigin(java.lang.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<java.lang.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<java.lang.String>
        Returns:
        if the lookup is immutable