Configuration
Resolving Values
Read configuration directly when binding is not the right fit.
Some code needs a single value instead of a whole configuration struct. The environment exposes a property resolver for direct lookup, defaults, and placeholder expansion.
value, ok := env.PropertyResolver().Lookup("server.port")
if !ok {
value = 8080
}Defaults
Use LookupOrDefault when a fallback belongs next to the lookup.
port := env.PropertyResolver().LookupOrDefault("server.port", 8080)Placeholder expansion
The resolver can expand ${...} placeholders in strings. This is useful when a
message, path, address, or generated setting references another property.
address := env.PropertyResolver().Expand("${server.host}:${server.port}")Use the strict variant when unresolved placeholders should be treated as a startup error.
address, err := env.PropertyResolver().ExpandStrict("${server.host}:${server.port}")
if err != nil {
return err
}Binder or resolver
Prefer typed binding for component configuration. Use direct lookup for one-off values, conditional startup decisions, or integration points where a small amount of dynamic configuration is easier to read inline.
