public final class ConfigProvider
extends java.lang.Object
This is the central class to access a Config
.
A Config
provides access to application Configuration.
That might be auto-discovered Config
or even manually created one.
The default usage is to use getConfig()
to automatically pick up the
'Configuration' for the Thread Context ClassLoader (See
Thread.getContextClassLoader()
).
A 'Configuration' consists of the information collected from the registered ConfigSources
.
These ConfigSources
get sorted according to
their ordinal defined via ConfigSource.getOrdinal()
.
Thus it is possible to overwrite configuration by providing in a ConfigSource with higher importance from outside.
It is also possible to register custom ConfigSources
to flexibly
extend the configuration mechanism. An example would be to pick up
configuration values from a database table.
Example usage:
String restUrl = ConfigProvider.getConfig().getValue("myproject.some.remote.service.url", String.class); Integer port = ConfigProvider.getConfig().getValue("myproject.some.remote.service.port", Integer.class);For more advanced use cases like e.g. registering a manually created
Config
please see
ConfigProviderResolver.registerConfig(Config, ClassLoader)
and ConfigProviderResolver.getBuilder()
.Modifier and Type | Method and Description |
---|---|
static Config |
getConfig()
Provide a
Config based on all ConfigSources of the
current Thread Context ClassLoader (TCCL) |
static Config |
getConfig(java.lang.ClassLoader cl)
Provide a
Config based on all ConfigSources of the
specified ClassLoader |
public static Config getConfig()
Config
based on all ConfigSources
of the
current Thread Context ClassLoader (TCCL)
The Config
will be stored for future retrieval.
There is exactly a single Config instance per ClassLoader
public static Config getConfig(java.lang.ClassLoader cl)
Config
based on all ConfigSources
of the
specified ClassLoader
There is exactly a single Config instance per ClassLoader
cl
- the specified classloader