Support 'required properties' precondition

Users may now call #setRequiredProperties(String...) against the
Environment (via its ConfigurablePropertyResolver interface) in order
to indicate which properties must be present.

Environment#validateRequiredProperties() is invoked by
AbstractApplicationContext during the refresh() lifecycle to perform
the actual check and a MissingRequiredPropertiesException is thrown
if the precondition is not satisfied.

Issue: SPR-8323
This commit is contained in:
Chris Beams
2011-05-11 07:36:04 +00:00
parent 3622c6f340
commit 404f798048
8 changed files with 170 additions and 1 deletions

View File

@@ -488,6 +488,10 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader
// Initialize any placeholder property sources in the context environment
initPropertySources();
// Validate that all properties marked as required are resolvable
// see ConfigurablePropertyResolver#setRequiredProperties
this.environment.validateRequiredProperties();
}
/**