Class SystemPropertiesFactoryBean

  • All Implemented Interfaces:
    org.springframework.beans.factory.FactoryBean<Properties>, org.springframework.beans.factory.InitializingBean
    Direct Known Subclasses:
    JndiPropertiesFactoryBean

    public class SystemPropertiesFactoryBean
    extends org.springframework.beans.factory.config.PropertiesFactoryBean
    Like the parent PropertiesFactoryBean, but overrides or augments the resulting property set with values from VM system properties. As with the Spring PropertyPlaceholderConfigurer the following modes are supported:
    • SYSTEM_PROPERTIES_MODE_NEVER: Don't use system properties at all.
    • SYSTEM_PROPERTIES_MODE_FALLBACK: Fallback to a system property only for undefined properties.
    • SYSTEM_PROPERTIES_MODE_OVERRIDE: (DEFAULT)Use a system property if it is available.
    Note that system properties will only be included in the property set if defaults for the property have already been defined using PropertiesLoaderSupport.setProperties(Properties) or PropertiesLoaderSupport.setLocations(org.springframework.core.io.Resource[]) or their names have been included explicitly in the set passed to setSystemProperties(Set).
    Author:
    Derek Hulley
    • Field Summary

      • Fields inherited from class org.springframework.core.io.support.PropertiesLoaderSupport

        localOverride, localProperties, logger
      • Fields inherited from interface org.springframework.beans.factory.FactoryBean

        OBJECT_TYPE_ATTRIBUTE
    • Constructor Detail

      • SystemPropertiesFactoryBean

        public SystemPropertiesFactoryBean()
    • Method Detail

      • setSystemPropertiesMode

        public void setSystemPropertiesMode​(int systemPropertiesMode)
        Set how to check system properties.
        See Also:
        PropertyPlaceholderConfigurer.setSystemPropertiesMode(int)
      • setSystemProperties

        public void setSystemProperties​(Set<String> systemProperties)
        Set the names of the properties that can be considered for overriding.
        Parameters:
        systemProperties - a set of properties that can be fetched from the system properties
      • mergeProperties

        protected Properties mergeProperties()
                                      throws IOException
        Overrides:
        mergeProperties in class org.springframework.core.io.support.PropertiesLoaderSupport
        Throws:
        IOException
      • resolveMergedProperty

        protected void resolveMergedProperty​(String systemProperty,
                                             Properties props)
        Override hook. Allows subclasses to resolve a merged property from an alternative source, whilst still respecting the chosen system property fallback path.
        Parameters:
        systemProperty - String
        props - Properties