## org.springframework.beans.factory.config
Class PreferencesPlaceholderConfigurer

    java.lang.Object
      org.springframework.core.io.support.PropertiesLoaderSupport
          org.springframework.beans.factory.config.PropertyResourceConfigurer
              org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
                  org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer

All Implemented Interfaces:
  BeanFactoryAware, BeanNameAware, BeanFactoryPostProcessor, InitializingBean, Ordered, PriorityOrdered

    public class PreferencesPlaceholderConfigurer

extends PropertyPlaceholderConfigurer
implements InitializingBean

Subclass of PropertyPlaceholderConfigurer that supports JDK 1.4's Preferences API (`java.util.prefs`).

Tries to resolve placeholders as keys first in the user preferences, then in the system preferences, then in this configurer's properties. Thus, behaves like PropertyPlaceholderConfigurer if no corresponding preferences defined.

Supports custom paths for the system and user preferences trees. Also supports custom paths specified in placeholders ("myPath/myPlaceholderKey"). Uses the respective root node if not specified.

Since:
  16.02.2004
Author:
  Juergen Hoeller
See Also:
  `setSystemTreePath(java.lang.String)`, `setUserTreePath(java.lang.String)`, `Preferences`

Field Summary

Fields inherited from class org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
`DEFAULT_PLACEHOLDER_PREFIX, DEFAULT_PLACEHOLDER_SUFFIX, SYSTEM_PROPERTIES_MODE_FALLBACK, SYSTEM_PROPERTIES_MODE_NEVER, SYSTEM_PROPERTIES_MODE_OVERRIDE`

Fields inherited from class org.springframework.core.io.support.PropertiesLoaderSupport
`logger, XML_FILE_EXTENSION`

Fields inherited from interface org.springframework.core.Ordered
`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

Constructor Summary
`PreferencesPlaceholderConfigurer()`

Method Summary
`void` `afterPropertiesSet()` This implementation eagerly fetches the Preferences instances for the required system and user tree nodes.
`protected String` `resolvePlaceholder(String placeholder, Properties props)` This implementation tries to resolve placeholders as keys first in the user preferences, then in the system preferences, then in the passed-in properties.
`protected String` `resolvePlaceholder(String path, String key, Preferences preferences)` Resolve the given path and key against the given Preferences.
`void` `setSystemTreePath(String systemTreePath)` Set the path in the system preferences tree to use for resolving placeholders.
`void` `setUserTreePath(String userTreePath)` Set the path in the system preferences tree to use for resolving placeholders.

Methods inherited from class org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
`parseStringValue, processProperties, resolvePlaceholder, resolveSystemProperty, setBeanFactory, setBeanName, setIgnoreUnresolvablePlaceholders, setNullValue, setPlaceholderPrefix, setPlaceholderSuffix, setSearchSystemEnvironment, setSystemPropertiesMode, setSystemPropertiesModeName`

Methods inherited from class org.springframework.beans.factory.config.PropertyResourceConfigurer
`convertProperties, convertPropertyValue, getOrder, postProcessBeanFactory, setOrder`

Methods inherited from class org.springframework.core.io.support.PropertiesLoaderSupport
`loadProperties, mergeProperties, 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

### PreferencesPlaceholderConfigurer

    public PreferencesPlaceholderConfigurer()

Method Detail

### setSystemTreePath

    public void setSystemTreePath(String systemTreePath)

  Set the path in the system preferences tree to use for resolving placeholders. Default is the root node.

### setUserTreePath

    public void setUserTreePath(String userTreePath)

  Set the path in the system preferences tree to use for resolving placeholders. Default is the root node.

### afterPropertiesSet

    public void afterPropertiesSet()

  This implementation eagerly fetches the Preferences instances for the required system and user tree nodes.

  Specified by:
    `afterPropertiesSet` in interface `InitializingBean`

### resolvePlaceholder

    protected String resolvePlaceholder(String placeholder,
                                        Properties props)

  This implementation tries to resolve placeholders as keys first in the user preferences, then in the system preferences, then in the passed-in properties.

  Overrides:
    `resolvePlaceholder` in class `PropertyPlaceholderConfigurer`
  Parameters:
    `placeholder` - the placeholder to resolve
    `props` - the merged properties of this configurer
  Returns:
    the resolved value, of `null` if none
  See Also:
    `PropertyPlaceholderConfigurer.setSystemPropertiesMode(int)`

### resolvePlaceholder

    protected String resolvePlaceholder(String path,
                                        String key,
                                        Preferences preferences)

  Resolve the given path and key against the given Preferences.

  Parameters:
    `path` - the preferences path (placeholder part before '/')
    `key` - the preferences key (placeholder part after '/')
    `preferences` - the Preferences to resolve against
  Returns:
    the value for the placeholder, or `null` if none found

Copyright © 2002-2008 The Spring Framework.