首页 > 社交 > 科普中国

自定义的配置文件,如何注入到SpringBoot?

常驻编辑 科普中国 2022-09-24 注解   变量   加载   定义   对象   参数   方式   环境   文件   项目

接着,在resources资源目录下,我们还需要创建一个文件META-INF/spring.factories,通过spi方式,将自定义环境处理类加载到Spring处理器里面,当项目启动时,会自动调用这个类!ROK拜客生活常识网

#启用我们的自定义环境处理类
org.springframework.boot.env.EnvironmentPostProcessor=com.example.property.env.MyEnvironmentPostProcessor

ROK拜客生活常识网

这种自定义环境处理类方式,相对会更佳灵活,首先编写一个通用的配置文件解析类,支持propertiesyml文件的读取,然后将其注入到Spring容器里面,基本上可以做到一劳永逸!ROK拜客生活常识网

2.5、最后,我们来介绍一下yml文件读取ROK拜客生活常识网

在上文中,我们大部分都是以properties为案例进行介绍,可能有的人已经踩过坑了,在项目中使用@PropertySource注解来加载yml文件,结果启动直接报错,原因是@PropertySource不支持直接解析yml文件,只能解析properties文件ROK拜客生活常识网

那如果,我想单独解析yml文件,也不想弄一个【自定义环境处理类】这种方式来读取文件,应该如何处理呢ROK拜客生活常识网

操作方式也很简单,以自定义的blog.yml文件为例!ROK拜客生活常识网

blog.yml文件内容:ROK拜客生活常识网

pzblog:
  name: helloWorld

然后,创建一个读取yml文件的配置类ROK拜客生活常识网

@Configuration
public class ConfigYaml {

    /**
     * 加载YML格式自定义配置文件
     * @return
     */
    @Bean
    public static PropertySourcesPlaceholderConfigurer properties() {
        PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
        YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
        yaml.setResources(new ClassPathResource("blog.yml"));
        configurer.setProperties(yaml.getObject());
        return configurer;
    }
}

读取数据的方式,与之类似!ROK拜客生活常识网

@RestController
public class HelloController {
    
    @Value("${pzblog.name}")
    private String pzblogName;

    @GetMapping("pzblogName")
    public String pzblogName(){
        return JSON.toJSONString(pzblogName);
    }
}

相关阅读:

  • 分支信息注释
  • Spring
  • 抄书第十六天,今天你微笑了吗
  • 一波带走,SpringBoot
  • 最真实的注解,值得永久收藏
  • 道德经第四十六章原文及注解 第十四章道德经解释 道德
  • Eureka源码3
  • SpringCloudAlibaba
  • Mybatis框架使用(一)
  • 八月的最后一个星期天,我“奢侈”了
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。