> 文章列表 > owner-Java Properties配置文件管理工具

owner-Java Properties配置文件管理工具

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文件的为准;

搞笑GIF图片