owner-Java Properties配置文件管理工具
owner-Java Properties配置文件管理工具
概述
wner 是一个 java 库,旨在减少通过 properties 文件来处理应用程序配置的代码。它已经打包成一个 jar 文件,你也可以从 Maven 中央仓库下载。开发此 API 是受 GWT i18n 启迪(点此查看)。使用 GWT i18n 来加载配置文件有一个问题,那就是它仅仅适用于客户端代码(JavaScript),不是标准的 java 类。此外,GWT 是一个大的库,它是为了很多用途而设计,并不仅仅针对配置文件。
项目以及文档地址如下:
Githup owner项目
英文文档
中文文档
安装依赖
Maven 仓库地址
最新版本为1.0.12
<dependency>
<groupId>org.aeonbits.owner</groupId>
<artifactId>owner-java8</artifactId>
<version>1.0.12</version>
</dependency>
使用
先定义一个与properties配置文件映射的接口。接口需要继承Config类
@LoadPolicy(Config.LoadType.FIRST) //加载策略
@Sources({
"classpath:ServerConfig.properties"}) //指定配置文件
public interface ConfigTest extends Config{
ConfigTest INSTANCE = ConfigFactory.create(ConfigTest.class);
@DefaultValue("fw")
String name();
@DefaultValue("0")
@Key("age")
Integer age();
}
配置文件ServerConfig.properties如下
name=zhangsan
age=18
映射规则
默认映射规则
- 定义的接口和配置文件名称需要相同,而且要在同一个包下,这样Owner才会自动关联他们;
非默认映射规则
- 如果配置文件和接口不在一个包下,而且文件名也不一样,这时可以通过@Sources注解指定配置文件;这样配置文件和接口也会关联起来;
properties文件中定义的属性名也会自动和java类中相同名字的方法关联,如果属性名和方法名称不一样,可以通过@Key注解指定配置文件中的属性名;另外将会自动进行关联类型的转换。
常用注解:
- @DefaultValue:指定默认值;
- @Sources:指定加载的properties文件。如果指定了多个文件,属性值只会从第一个被找到的文件中加载,一但有匹配的文件被加载,其它的都会被忽略。这时默认的加载方式,也可以使用 @LoadPolicy(LoadType.FIRST) 注解来指定;
- @LoadPolicy:指定加载策略。LoadType.FIRST:属性值只会从第一个被找到的文件中加载,一但有匹配的文件被加载,其它的都会被忽略;LoadType.MERGE:会加载所有的配置文件,但是属性值以第一个properties文件的为准;
还没有评论,来说两句吧...