Class SystemPropertyUtils

java.lang.Object
org.springframework.boot.loader.util.SystemPropertyUtils

public abstract class SystemPropertyUtils extends Object
Helper class for resolving placeholders in texts. Usually applied to file paths.

A text may contain $ ... placeholders, to be resolved as system properties: e.g. $ user.dir. Default values can be supplied using the ":" separator between key and value.

Adapted from Spring.

Since:
1.0.0
Author:
Juergen Hoeller, Rob Harrop, Dave Syer
See Also:
  • Field Details

    • PLACEHOLDER_PREFIX

      public static final String PLACEHOLDER_PREFIX
      Prefix for system property placeholders: "${".
      See Also:
    • PLACEHOLDER_SUFFIX

      public static final String PLACEHOLDER_SUFFIX
      Suffix for system property placeholders: "}".
      See Also:
    • VALUE_SEPARATOR

      public static final String VALUE_SEPARATOR
      Value separator for system property placeholders: ":".
      See Also:
  • Constructor Details

    • SystemPropertyUtils

      public SystemPropertyUtils()
  • Method Details

    • resolvePlaceholders

      public static String resolvePlaceholders(String text)
      Resolve ${...} placeholders in the given text, replacing them with corresponding system property values.
      Parameters:
      text - the String to resolve
      Returns:
      the resolved String
      Throws:
      IllegalArgumentException - if there is an unresolvable placeholder
      See Also:
    • resolvePlaceholders

      public static String resolvePlaceholders(Properties properties, String text)
      Resolve ${...} placeholders in the given text, replacing them with corresponding system property values.
      Parameters:
      properties - a properties instance to use in addition to System
      text - the String to resolve
      Returns:
      the resolved String
      Throws:
      IllegalArgumentException - if there is an unresolvable placeholder
      See Also:
    • getProperty

      public static String getProperty(String key)
    • getProperty

      public static String getProperty(String key, String defaultValue)
    • getProperty

      public static String getProperty(String key, String defaultValue, String text)
      Search the System properties and environment variables for a value with the provided key. Environment variables in UPPER_CASE style are allowed where System properties would normally be lower.case.
      Parameters:
      key - the key to resolve
      defaultValue - the default value
      text - optional extra context for an error message if the key resolution fails (e.g. if System properties are not accessible)
      Returns:
      a static property value or null of not found