Simple Configuration Facade用于 Java 开发的配置工具

联合创作 · 2023-10-01 07:37

SCF: 简单配置门面


Simple Configuration Facade, 简写为 SCF。是 代码外部配置 (properties文件, 环境变量,系统/命令行参数, yaml文件, 等等)之间的一层抽象。命名上和另一个著名组件 slf4j (Simple Logging Facade for Java)相似,在配置领域的地位也和 slf4j (.NET 可类比 NLog)在日志领域的地位相同。


SCF 使得代码和外部配置分离。代码使用一个配置项,无需关心配置项在哪里配置,如何配置。


用法



  • java: https://github.com/mydotey/scf/tree/master/java


  • dotnet: https://github.com/mydotey/scf/tree/master/dotnet



示例



功能


强类型


核心抽象是强类型的Property
, Key和Value都是强类型。
,>


安全的配置


可以通过1个value filter来自动检查外部配置的正确性。


动态配置


配置可以是动态变化的。配置项的值自动更新。用户也可添加Listener监听配置项的变化。


多配置源


多个配置源有不同的优先级。配置项的值按配置源的优先级自动计算。


可扩展


scf-core 里只定义了一组接口抽象和默认实现。所有核心概念都是可扩展的(配置管理器,配置源,配置项等等)。用户可以自由地对默认实现进行扩展,或者编写自己的实现。


一些常用扩展:



轻量


无线程使用,只使用少量内存来缓存配置项。


支持多线程并发


Manager/Property的方法都是线程安全的,可以多线程并发使用。时间复杂读为O(1),和ConcurrentHashMap相同。


容易使用


scf-simple 对最简单常用的Property
,>
场景进行了实现: properties file, memory Map, system properties, env variables.


参考:


浏览 14
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报