Theia 是一个 java 语言编写的,支持自定义扩展的注解式配置加载与注入组件,旨在以注解的方式加载任何可以被表示成 Properties 对象的配置,并注入给目标对象,同时支持当配置内容发生变更时回调更新。配置文件的来源可以是本地文件、网络,以及第三方配置系统。Theia 默认支持从 ClassPath 加载本地配置文件,并支持以 SPI 的方式扩展以支持更多的配置来源,例如从 ZK 加载配置等。
特性一览:
- 支持以注解的方式加载多种配置数据源,并注入给配置对象。
- 支持预注入,预注入会校验配置的合法性,如果不合法则会放弃注入,避免配置出错影响服务的正常运行。
- 支持配置变更时回调更新,默认关闭,并允许用户配置是否启用。
- 内置基本类型转换器,用于将 String 类型配置项转换成目标类型对象。
- 支持自定义类型转换器,以实现一些定制化的类型转换。
- 支持以原生字符串或 Properties 对象的形式注入。
- 支持监听注入过程(InjectEventListener)和更新过程(UpdateEventListener)。
- 支持加载系统环境变量,并注入给配置对象。
- 支持
${}
占位符替换,使用指定的配置项替换占位符。 - 支持以 SPI 的方式扩展以支持更多类型的配置数据源。
- 对于 Spring 应用,支持自动扫描、加载并初始化配置对象。