AbstractEnvironment constructor
AbstractEnvironment()
Base class for creating environment implementations in JetLeaf.
AbstractEnvironment is a foundational implementation of ConfigurableEnvironment
that manages environment properties and profiles via:
- A MutablePropertySources collection,
- A PropertySourcesPropertyResolver for resolving properties,
- A
ConfigurableConversionServicefor type conversions, - and support for placeholder resolution and profile activation.
Subclasses should override customizePropertySources to register their own sources, such as system properties, application config maps, or custom sources.
Example
class MyEnvironment extends AbstractEnvironment {
@override
void customizePropertySources(MutablePropertySources sources) {
sources.addLast(MapPropertySource('my-config', {
'server.port': '8080',
'debug': 'true',
}));
}
}
void main() {
final env = MyEnvironment();
print(env.getProperty('server.port')); // 8080
}
Profiles
JetLeaf supports both active and default profiles:
- Active profiles are those explicitly set using setActiveProfiles or addActiveProfile.
- Default profiles are used when no active profile is set, and can be configured using setDefaultProfiles.
A default profile name of "default" is always used unless overridden.
System properties and environment
You can access system properties and environment variables using getSystemProperties
and getSystemEnvironment. To suppress access to System.getenv(), set the
jetleaf.getenv.ignore flag via JetLeafProperties.
Implementation
AbstractEnvironment() : this.source(MutablePropertySources());