Annotation Interface YamlPropertySource
@ResourcePropertySource providing a convenient and declarative
mechanism for adding a YAML ImmutableMapPropertySource to Spring's Environment.
To be used in conjunction with @Configuration classes.
Example Usage
Example 1: Basic usage
@YamlPropertySource("classpath:/config/app.yaml")
@Configuration
public class AppConfig {
}
Example 2: Using wildcard and custom sorting
@YamlPropertySource(value = "classpath:/config/*.yaml",
resourceComparator = CustomResourceComparator.class)
@Configuration
public class AppConfig {
}
Example 3: Optional JSON resource
@YamlPropertySource(value = "classpath:/config/optional.yaml", ignoreResourceNotFound = true)
@Configuration
public class AppConfig {
}
Example 4: Auto-refreshing property source
@YamlPropertySource(value = "file:/data/config/app.yaml", autoRefreshed = true)
@Configuration
public class AppConfig {
}
Example 5: For specifying the order of property sources
@YamlPropertySource(value = "classpath:/app.yaml", first = true)
@Configuration
public class AppConfig {
// configuration beans
}
Example 6: Customizing the character encoding
@YamlPropertySource(value = "classpath:/app.yaml", encoding = "ISO-8859-1")
@Configuration
public class AppConfig {
// configuration beans
}
- Since:
- 1.0.0
- Author:
- Mercy
- See Also:
-
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionThe relative order after specifiedPropertySourcebooleanIt indicates the property source is auto-refreshed when the configuration is changed.The relative order before specifiedPropertySourceA specific character encoding for the given resources.booleanbooleanIndicate if a failure to find aproperty resourceshould be ignored.Indicate the name of this property source.Class<? extends Comparator<org.springframework.core.io.Resource>>Indicate the resources to be sorted whenvalue()specifies the resource location wildcardsString[]Indicate the resource location(s) of the YAML file to be loaded.
-
Element Details
-
name
Indicate the name of this property source.- See Also:
-
PropertySource.getName()Resource.getDescription()
- Default:
- ""
-
autoRefreshed
It indicates the property source is auto-refreshed when the configuration is changed.- Returns:
- default value is
false
- Default:
- false
-
first
Indicates currentPropertySourceis first order or not If specified ,before()andafter()will be ignored, or last order.- Returns:
- default value is
false
- Default:
- false
-
before
The relative order before specifiedPropertySourceIf not specified , current
PropertySourcewill be added last.If
first()specified , current attribute will be ignored.- Returns:
- the name of
PropertySource, default value is the empty string
- Default:
- ""
-
after
The relative order after specifiedPropertySourceIf not specified , current
PropertySourcewill be added last.If
first()specified , current attribute will be ignored.- Returns:
- the name of
PropertySource, default value is the empty string
- Default:
- ""
-
value
Indicate the resource location(s) of the YAML file to be loaded.For example,
"classpath:/com/myco/app.yaml"or"classpath:/com/myco/app.yml"or"file:/path/to/file.yaml".Resource location wildcards (e.g. **/*.yaml) 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
Environmentas its own property source, and in the order declared.- Default:
- {}
-
resourceComparator
@AliasFor(annotation=ResourcePropertySource.class) Class<? extends Comparator<org.springframework.core.io.Resource>> resourceComparatorIndicate the resources to be sorted whenvalue()specifies the resource location wildcardsFor example,
"classpath:/com/myco/*.yaml", suppose there are two resources named "a.yaml" and "b.yaml" where two instances ofResourcewill be resolved, they are the sources ofPropertySource, thus it has to sort them to indicate the order ofPropertySourcethat will be added to the enclosingEnvironment.Default is
DefaultResourceComparator- See Also:
- Default:
- io.microsphere.spring.config.env.support.DefaultResourceComparator.class
-
ignoreResourceNotFound
Indicate if a failure to find aproperty resourceshould be ignored.trueis appropriate if the YAML file is completely optional.Default is
false.- Default:
- false
-
encoding
A specific character encoding for the given resources.Default is "UTF-8"
- Default:
- "UTF-8"
-