== real process, real environment: binding demo.relaxed.api-key == canonical property : demo.relaxed.api-key (MISS) means the property was not found and the declared default was used --- as an operating-system environment variable --- $ DEMO_RELAXED_API_KEY=secret-value java -jar target/configuration-properties-1.0.0.jar env-var-set : DEMO_RELAXED_API_KEY=secret-value @ConfigurationProps: secret-value @Value : secret-value Environment.get : secret-value $ DEMO_RELAXED_APIKEY=secret-value java -jar target/configuration-properties-1.0.0.jar env-var-set : DEMO_RELAXED_APIKEY=secret-value @ConfigurationProps: secret-value @Value : secret-value Environment.get : secret-value --- as a JVM system property (-D), i.e. the 'map' rows of the matrix --- $ java -Ddemo.relaxed.api-key=secret-value -jar target/configuration-properties-1.0.0.jar @ConfigurationProps: secret-value @Value : secret-value Environment.get : secret-value $ java -Ddemo.relaxed.apiKey=secret-value -jar target/configuration-properties-1.0.0.jar @ConfigurationProps: secret-value @Value : secret-value Environment.get : secret-value $ java -Ddemo.relaxed.apikey=secret-value -jar target/configuration-properties-1.0.0.jar @ConfigurationProps: secret-value @Value : secret-value Environment.get : secret-value $ java -Ddemo.relaxed.api.key=secret-value -jar target/configuration-properties-1.0.0.jar @ConfigurationProps: (unset) @Value : (MISS) Environment.get : (MISS) The last one is not a spelling of the property. api.key is two name elements; api-key is one. Nothing relaxed will ever join them.