Class ConfigTreePropertySource
- All Implemented Interfaces:
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
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Property source options.static interface
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
-
Constructor Summary
ConstructorDescriptionConfigTreePropertySource
(String name, Path sourceDirectory) Create a newConfigTreePropertySource
instance.ConfigTreePropertySource
(String name, Path sourceDirectory, ConfigTreePropertySource.Option... options) Create a newConfigTreePropertySource
instance. -
Method Summary
Modifier and TypeMethodDescriptionReturn the origin of the given key ornull
if the origin cannot be determined.getProperty
(String name) String[]
boolean
Returntrue
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
Methods inherited from interface org.springframework.boot.origin.OriginLookup
getPrefix
-
Constructor Details
-
ConfigTreePropertySource
Create a newConfigTreePropertySource
instance.- Parameters:
name
- the name of the property sourcesourceDirectory
- the underlying source directory
-
ConfigTreePropertySource
public ConfigTreePropertySource(String name, Path sourceDirectory, ConfigTreePropertySource.Option... options) Create a newConfigTreePropertySource
instance.- Parameters:
name
- the name of the property sourcesourceDirectory
- the underlying source directoryoptions
- the property source options
-
-
Method Details
-
getPropertyNames
- Specified by:
getPropertyNames
in classorg.springframework.core.env.EnumerablePropertySource<Path>
-
getProperty
- Specified by:
getProperty
in classorg.springframework.core.env.PropertySource<Path>
-
getOrigin
Description copied from interface:OriginLookup
Return the origin of the given key ornull
if the origin cannot be determined.- Specified by:
getOrigin
in interfaceOriginLookup<String>
- Parameters:
name
- the key to lookup- Returns:
- the origin of the key or
null
-
isImmutable
public boolean isImmutable()Description copied from interface:OriginLookup
Returntrue
if this lookup is immutable and has contents that will never change.- Specified by:
isImmutable
in interfaceOriginLookup<String>
- Returns:
- if the lookup is immutable
-