Annotation Type PropertySourceExtension


  • @Target(ANNOTATION_TYPE)
    @Retention(RUNTIME)
    @Inherited
    @Documented
    public @interface PropertySourceExtension
    A meta-annotation extension for the Spring @PropertySource that has some limitations:
    • The @PropertySource annotation can't auto-refresh the property sources
    • The @PropertySource annotation can't control the order of PropertySource
    • The @PropertySource annotation can't be inherited
    • The PropertySource#value() attribute does not support the resource location wildcards
    • The PropertySource#encoding() attribute does not specify the default encoding for the resource
    Since:
    1.0.0
    Author:
    Mercy
    See Also:
    PropertySource, PropertySource, PropertySourceExtensionLoader
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.String after
      The relative order after specified PropertySource
      boolean autoRefreshed
      It indicates the property source is auto-refreshed when the configuration is changed.
      java.lang.String before
      The relative order before specified PropertySource
      java.lang.String encoding
      A specific character encoding for the given resources.
      java.lang.Class<? extends org.springframework.core.io.support.PropertySourceFactory> factory
      Specify a custom PropertySourceFactory, if any.
      boolean first
      Indicates current PropertySource is first order or not If specified , before() and after() will be ignored, or last order.
      boolean ignoreResourceNotFound
      Indicate if a failure to find a property resource should be ignored.
      java.lang.String name
      Indicate the name of this property source.
      java.lang.Class<? extends java.util.Comparator<org.springframework.core.io.Resource>> resourceComparator
      Indicate the resources to be sorted when value() specifies the resource location wildcards or the same resource names with the different absolute paths.
      java.lang.String[] value
      Indicate the resource(s) of the property source to be loaded.
    • Element Detail

      • name

        java.lang.String name
        Indicate the name of this property source.
        See Also:
        PropertySource.getName(), Resource.getDescription()
        Default:
        ""
      • autoRefreshed

        boolean autoRefreshed
        It indicates the property source is auto-refreshed when the configuration is changed.
        Returns:
        default value is false
        Default:
        false
      • first

        boolean first
        Indicates current PropertySource is first order or not If specified , before() and after() will be ignored, or last order.
        Returns:
        default value is false
        Default:
        false
      • before

        java.lang.String before
        The relative order before specified PropertySource

        If not specified , current PropertySource will be added last.

        If first() specified , current attribute will be ignored.

        Returns:
        the name of PropertySource, default value is the empty string
        Default:
        ""
      • after

        java.lang.String after
        The relative order after specified PropertySource

        If not specified , current PropertySource will be added last.

        If first() specified , current attribute will be ignored.

        Returns:
        the name of PropertySource, default value is the empty string
        Default:
        ""
      • value

        java.lang.String[] value
        Indicate the resource(s) of the property source to be loaded.

        For example, "classpath:/com/myco/app.properties" or "file:/path/to/file.xml".

        Resource wildcards (e.g. **/*.properties) also are permitted;

        ${...} placeholders will be resolved against any/all property sources already registered with the Environment.

        Each value will be added to the enclosing Environment as its own property source, and in the order declared.

        Default:
        {}
      • resourceComparator

        java.lang.Class<? extends java.util.Comparator<org.springframework.core.io.Resource>> resourceComparator
        Indicate the resources to be sorted when value() specifies the resource location wildcards or the same resource names with the different absolute paths.

        For example, "classpath:/com/myco/*.properties", suppose there are two resources named "a.properties" and "b.properties" where two instances of Resource will be resolved, they are the sources of PropertySource, thus it has to sort them to indicate the order of PropertySource that will be added to the enclosing Environment.

        Default is DefaultResourceComparator

        See Also:
        DefaultResourceComparator
        Default:
        io.microsphere.spring.config.env.support.DefaultResourceComparator.class
      • ignoreResourceNotFound

        boolean ignoreResourceNotFound
        Indicate if a failure to find a property resource should be ignored.

        true is appropriate if the properties file is completely optional.

        Default is false.

        Default:
        false
      • encoding

        java.lang.String encoding
        A specific character encoding for the given resources.

        Default is "UTF-8"

        Default:
        "UTF-8"
      • factory

        java.lang.Class<? extends org.springframework.core.io.support.PropertySourceFactory> factory
        Specify a custom PropertySourceFactory, if any.

        By default, a default factory for standard resource files will be used.

        Default is DefaultPropertySourceFactory

        See Also:
        DefaultPropertySourceFactory, ResourcePropertySource
        Default:
        org.springframework.core.io.support.DefaultPropertySourceFactory.class