Class SystemPropertiesFactoryBean

  • All Implemented Interfaces:
    org.springframework.beans.factory.FactoryBean<java.util.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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.util.Properties mergeProperties()  
      protected void resolveMergedProperty​(java.lang.String systemProperty, java.util.Properties props)
      Override hook.
      void setSystemProperties​(java.util.Set<java.lang.String> systemProperties)
      Set the names of the properties that can be considered for overriding.
      void setSystemPropertiesMode​(int systemPropertiesMode)
      Set how to check system properties.
      void setSystemPropertiesModeName​(java.lang.String constantName)
      Set the system property mode by the name of the corresponding constant, e.g.
      • Methods inherited from class org.springframework.beans.factory.config.PropertiesFactoryBean

        afterPropertiesSet, createProperties, getObject, getObjectType, isSingleton, setSingleton
      • Methods inherited from class org.springframework.core.io.support.PropertiesLoaderSupport

        loadProperties, setFileEncoding, setIgnoreResourceNotFound, setLocalOverride, setLocation, setLocations, setProperties, setPropertiesArray, setPropertiesPersister
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SystemPropertiesFactoryBean

        public SystemPropertiesFactoryBean()
    • Method Detail

      • setSystemPropertiesModeName

        public void setSystemPropertiesModeName​(java.lang.String constantName)
                                         throws java.lang.IllegalArgumentException
        Set the system property mode by the name of the corresponding constant, e.g. "SYSTEM_PROPERTIES_MODE_OVERRIDE".
        Parameters:
        constantName - name of the constant
        Throws:
        java.lang.IllegalArgumentException - if an invalid constant was specified
        See Also:
        setSystemPropertiesMode(int)
      • setSystemPropertiesMode

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

        public void setSystemProperties​(java.util.Set<java.lang.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 java.util.Properties mergeProperties()
                                                throws java.io.IOException
        Overrides:
        mergeProperties in class org.springframework.core.io.support.PropertiesLoaderSupport
        Throws:
        java.io.IOException
      • resolveMergedProperty

        protected void resolveMergedProperty​(java.lang.String systemProperty,
                                             java.util.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