Top Description Interfaces Classes
module org.eclipse.microprofile.config

Package org.eclipse.microprofile.config

Annotations
@Version:3.0.0

Configuration for Java MicroProfile

Rationale

For many project artifacts (e.g. WAR, EAR) it should be possible to build them only once and then install them at different customers, stages, etc. They need to target those different execution environments without the necessity of any repackaging. In other words: depending on the situation they need different configuration.

This is easily achievable by having a set of default configuration values inside the project artifact. But be able to overwrite those default values from external.

How it works

A Configuration consists of the information collected from the registered ConfigSources. These ConfigSources get sorted according to their ordinal. That way it is possible to overwrite configuration with lower importance from outside.

By default there are 3 ConfigSources:

That means that one can put the default configuration in a META-INF/microprofile-config.properties anywhere on the classpath and the Operations team can later simply e.g set a system property to change this default configuration.

It is of course also possible to register own ConfigSources. A ConfigSource could e.g. read configuration values from a database table, a remote server, etc

Accessing and Using the Configuration

The configuration of an application is represented by an instance of org.eclipse.microprofile.config.Config. The org.eclipse.microprofile.config.Config can be accessed via the org.eclipse.microprofile.config.ConfigProvider.

Config config = ConfigProvider.getConfig();
String restUrl = config.getValue("myproject.some.endpoint.url", String.class);

Injection via a JSR-330 DI container is also supported:

@Inject
@ConfigProperty(name="myproject.some.endpoint.url");
private String restUrl;
Authors
Emily Jiang, Mark Struberg

Interface Summary

Modifier and TypeInterface and Description
public interface
Config

Resolves the property value by searching through all configured ConfigSources.

public interface
ConfigValue

The ConfigValue holds additional information after the lookup of a configuration property and is itself immutable.

Class Summary

Modifier and TypeClass and Description
public class
ConfigProvider

This is the central class to access a Config.