JFinal PropKit 读取配置详细说明

时间:2021-04-12     访问量:1697

所属栏目:知识库

1.简介

PropKit工具类用来读取外部键值对配置文件,PropKit可以极度方便地在系统任意时空使用,配置文件的格式如下。读取的文件支持txt文本文件、propties配置文件,一般使用txt文件即可,JFinal官网社区就是用的txt文件。

devMode=true
userName=zyg
fileName=propkit.txt

2.读取配置文件

2.1.配置文件路径

可以是工程内的文件,也可以是任意可读路径的文件。

工程内的配置文件推进放在resources目录下,其他路径读取时需要注意路径位置。

2.2.读取方式

直接使用文件名读取(个人推荐方式)

//在类路径的根目录下时直接读取文件名即可
PropKit.use("propkit.txt");
PropKit.use("propkit.txt", "UTF-8");
//在类路径的子目录下时添加上类路径即可
PropKit.use("propkit/propkit.txt");
PropKit.use("propkit/propkit.txt", "UTF-8");


读取File文件对象,当配置文件在服务器的某个具体路径时可以使用这个方式。

Prop prop = PropKit.use(new File("G:\\临时文件\\undertow-pro.txt"));
Prop prop = PropKit.use(new File("G:\\临时文件\\undertow-pro.txt"), "UTF-8");


2.3.获取配置项的值

支持直接获取String、int、long、boolean等类型的值。

PropKit.getBoolean("dev");
PropKit.getInt("count");


3.高级读取方法

使用第一个发现的配置文件:可以通过这种方式设定不同文件的优先级,区分开发环境、生产环境使用不同的配置文件。

//开发配置文件、生产配置文件可以灵活使用
PropKit.useFirstFound("propkit.txt", "propkit.propties");


追加配置文件:有如下两种方式:

//直接追加,不存在时会报错
PropKit.append("propkit.txt");
//安全追加,当文件不存在时不追加,不会报错,推荐使用
//这种方式也可以区分开发配置和生产配置,在生产环境部署一个生产配置文件覆盖开发配置文件
PropKit.appendIfExists("propkit2.txt");


追加配置文件:当两个配置文件中有相同key时以后一个为准。

首次加载和非首次加载:两者唯一区别在于获取参数值的方式:首次加载的配置文件中的值可以直接通过PropKit.get方法获取参数值,因为首次加载的配置文件会成为主配置;而非首次加载的获取配置值时需要先使用use方法再使用get方法,或者先获取一个Prop对象。

//首次加载的配置文件
PropKit.use("propkit.txt");
PropKit.get("fileName")
//非首次加载的配置文件
PropKit.use("propkit.propties");
PropKit.use("propkit.propties").get("fileName");
Prop p = PropKit.use("propkit.propties");
p.get("fileName");


4.实际应用

在config类中实际使用一下,下面是一个简单地例子,详细介绍及演示请移步至JFinal从入门到实战视频教程【60集】

//工程包里有两个配置文件,开发配置在前,后续部署到生产的时候去掉开发配置文件即可
PropKit.useFirstFound("learningConfig-dev.txt", "learningConfig.txt");
me.setDevMode(PropKit.get("devMode",true));