目录
简介
读取配置文件
2.1.配置文件路径
2.2.读取方式
2.3.获取配置项的值
高级读取方法
实际应用
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));
jfinal 4.9.01 版本新增了对于 get 方法的 trim() 操作,这样就可以避免 value 值的后面会不小心多一个空白字符,减少麻烦
此外,配置的时候,等号前后两侧可以留一个空格,即便是老版本 value 值也并不会多出一个空格,新版本添加 trim() 以后就更不会多出空格了