1:概述
SpringBoot的@PropertySource注解只支持加载 properties结尾的文件。当使用@ConfigurationProperties
注解配合@EnableConfigurationProperties注解将配置转换为JavaBean时,可能需要配合@PropertySource
注解加载指定的配置文件。所以为了支持以yml或者yaml文件,我自定义了注解@YmlPropertySource。
2:实现
声明注解@YmlPropertySource
/**
* 类描述: load yml or yaml file into {@link org.springframework.core.env.Environment}
*
* @author liuenyuan
* @date 2019/6/16 20:12
* @describe
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface YmlPropertySource {
/**
* Indicate the name of this property source. If omitted, a name will
* be generated based on the description of the underlying resource.
*
* @see org.springframework.core.env.PropertySource#getName()
* @see org.springframework.core.io.Resource#getDescription()
*/
String name() default "";
/**
* Indicate the resource location(s) of the properties file to be loaded.
* <p>Both traditional and XML-based properties file formats are supported
* — for example, {@code "classpath:/com/myco/app.yml|yaml"}
* <p>Resource location wildcards (e.g. **/*.yml|yaml) are not permitt