Annotation Type ResourcePropertySource
-
@Target(TYPE) @Retention(RUNTIME) @Inherited @Documented @PropertySourceExtension @Repeatable(ResourcePropertySources.class) @Import(ResourcePropertySourceLoader.class) public @interface ResourcePropertySource
A variant of the@PropertySource
annotation that has some limitations:- The
@PropertySource
annotation can't meta-annotate the another annotation - The
@PropertySource
annotation can't control the order ofPropertySource
- The
@PropertySource
annotation can't beinherited
- The
PropertySource#value()
attribute does not support theresource
location wildcards - The
PropertySource#encoding()
attribute does not specify the default encoding for theresource
This annotation provides additional features not available with the standard
PropertySource
, such as:- Support for meta-annotation usage
- Control over the order in which property sources are added to Spring's Environment
- Inheritance through the use of the
Inherited
annotation - Support for resource location wildcards in the resource paths
- Ability to specify default encoding for property resources
Examples Usage
Basic Usage
To load a simple properties file from the classpath:{@code
- Since:
- 1.0.0
- Author:
- Mercy
- See Also:
PropertySource
,PropertySource
,Configuration
- The
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description java.lang.String
after
The relative order after specifiedPropertySource
boolean
autoRefreshed
It indicates the property source is auto-refreshed when the configuration is changed.java.lang.String
before
The relative order before specifiedPropertySource
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 customPropertySourceFactory
, if any.boolean
first
boolean
ignoreResourceNotFound
Indicate if a failure to find aproperty 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 whenvalue()
specifies the resource location wildcards or the same resource names with the different absolute paths.java.lang.String[]
value
Indicate the resource location(s) of the property source file to be loaded.
-
-
-
Element Detail
-
name
@AliasFor(annotation=PropertySourceExtension.class) java.lang.String name
Indicate the name of this property source.- See Also:
PropertySource.getName()
,Resource.getDescription()
- Default:
- ""
-
-
-
autoRefreshed
@AliasFor(annotation=PropertySourceExtension.class) boolean autoRefreshed
It indicates the property source is auto-refreshed when the configuration is changed.- Returns:
- default value is
false
- Default:
- false
-
-
-
first
@AliasFor(annotation=PropertySourceExtension.class) boolean first
Indicates currentPropertySource
is first order or not If specified ,before()
andafter()
will be ignored, or last order.- Returns:
- default value is
false
- Default:
- false
-
-
-
before
@AliasFor(annotation=PropertySourceExtension.class) java.lang.String before
The relative order before specifiedPropertySource
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
@AliasFor(annotation=PropertySourceExtension.class) java.lang.String after
The relative order after specifiedPropertySource
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
@AliasFor(annotation=PropertySourceExtension.class) java.lang.String[] value
Indicate the resource location(s) of the property source file to be loaded.Both traditional and XML-based properties file formats are supported — for example,
"classpath:/com/myco/app.properties"
or"file:/path/to/file.xml"
.Resource location wildcards (e.g. **/*.properties) also are permitted;
${...} placeholders will be resolved against any/all property sources already registered with the
Environment
.Each location will be added to the enclosing
Environment
as its own property source, and in the order declared.- Default:
- {}
-
-
-
resourceComparator
@AliasFor(annotation=PropertySourceExtension.class) java.lang.Class<? extends java.util.Comparator<org.springframework.core.io.Resource>> resourceComparator
Indicate the resources to be sorted whenvalue()
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 ofResource
will be resolved, they are the sources ofPropertySource
, thus it has to sort them to indicate the order ofPropertySource
that will be added to the enclosingEnvironment
.Default is
DefaultResourceComparator
- See Also:
DefaultResourceComparator
- Default:
- io.microsphere.spring.config.env.support.DefaultResourceComparator.class
-
-
-
ignoreResourceNotFound
@AliasFor(annotation=PropertySourceExtension.class) boolean ignoreResourceNotFound
Indicate if a failure to find aproperty resource
should be ignored.true
is appropriate if the properties file is completely optional.Default is
false
.- Default:
- false
-
-
-
encoding
@AliasFor(annotation=PropertySourceExtension.class) java.lang.String encoding
A specific character encoding for the given resources.Default is the property value of "file.encoding" if present, or "UTF-8"
- Default:
- "${file.encoding:UTF-8}"
-
-
-
factory
@AliasFor(annotation=PropertySourceExtension.class) java.lang.Class<? extends org.springframework.core.io.support.PropertySourceFactory> factory
Specify a customPropertySourceFactory
, 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
-
-