Annotation Type JsonPropertySource
-
@Target(TYPE) @Retention(RUNTIME) @Inherited @Documented @ResourcePropertySource(factory=JsonPropertySourceFactory.class) public @interface JsonPropertySource
The extension annotation of@ResourcePropertySource
providing a convenient and declarative mechanism for adding a JSONPropertySource
to Spring's Environment. To be used in conjunction with@Configuration
classes.Using
JsonPropertySource
allows declarative loading of external JSON configuration files into the Spring application context's environment. It supports both single and wildcard resource locations, with optional sorting and encoding configurations.Example Usage
Example 1: Basic usage
{@code
- Since:
- 1.0.0
- Author:
- Mercy
- See Also:
ResourcePropertySource
,JsonPropertySourceFactory
,MapPropertySource
-
-
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.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 wildcardsjava.lang.String[]
value
Indicate the resource location(s) of the JSON file to be loaded.
-
-
-
Element Detail
-
name
@AliasFor(annotation=ResourcePropertySource.class) java.lang.String name
Indicate the name of this property source.- See Also:
PropertySource.getName()
,Resource.getDescription()
- Default:
- ""
-
-
-
autoRefreshed
@AliasFor(annotation=ResourcePropertySource.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=ResourcePropertySource.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=ResourcePropertySource.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=ResourcePropertySource.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=ResourcePropertySource.class) java.lang.String[] value
Indicate the resource location(s) of the JSON file to be loaded.For example,
"classpath:/com/myco/app.json"
Resource location wildcards (e.g. **/*.json) 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=ResourcePropertySource.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 wildcardsFor example,
"classpath:/com/myco/*.json"
, suppose there are two resources named "a.json" and "b.json" 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=ResourcePropertySource.class) boolean ignoreResourceNotFound
Indicate if a failure to find aproperty resource
should be ignored.true
is appropriate if the JSON file is completely optional.Default is
false
.- Default:
- false
-
-
-
encoding
@AliasFor(annotation=ResourcePropertySource.class) java.lang.String encoding
A specific character encoding for the given resources.Default is "UTF-8"
- Default:
- "UTF-8"
-
-