用于@ConfigurationProperties的自定义基于XML的属性源加载器

我有兴趣创建一个或多个自定义属性源加载器,并在我的应用程序中使用带有@ConfigurationProperties的属性源.

例如,我想开发一个属性源加载器,它能够加载XML文件并将其转换为一组属性,这些属性可以注入我的@Configuration带注释的类中.

@Configuration
@ConfigurationProperties(locations="classpath:config.xml")
public class MyConfig
{
    ...
}

是否公开提供任何此类基于XML的属性源加载器?如果没有,那么一旦实施,我将如何将其提供给我的应用程序?

谢谢.

您可以检查YamlPropertySourceLoader的实现方式.一旦实现了它的方法
org.springframework.boot.env.YamlPropertySourceLoader#getFileExtensions

将在您添加此类内容后调用

@ConfigurationProperties(locations="classpath:config.xml")

但是看着YamlPropertySourceLoader的实现看起来你会有很多工作要做,配对等等.

您应该检查yaml是否足够您,因为它使您可以进行结构化属性:

例如,以下YAML文档:

environments:
    dev:
        url: http://dev.bar.com
        name: Developer Setup
    prod:
        url: http://foo.bar.com
        name: My Cool App

将转化为这些属性:

environments.dev.url=http://dev.bar.com
environments.dev.name=Developer Setup
environments.prod.url=http://foo.bar.com
environments.prod.name=My Cool App

YAML列表用[index] dereferencers表示为属性键,例如这个YAML:

my:
   servers:
       - dev.bar.com
       - foo.bar.com

将转化为这些属性:

my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com

即使您已准备好XML文档,并且这是您希望在配置中加载它们的原因,将XML转换为YAML(https://github.com/FasterXML/jackson-dataformat-xml)并使用现有的YamlPropertySourceLoader比编写自己的PropertySourceLoader要简单得多.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇