java 读取不同的配置文件
2023-09-14 08:57:45 时间
关于JAVA 中的Configuration类
properties文件是Java平台默认的配置文件格式,其优点是格式清晰,简单易懂,使用commons-configuration读取properties文件也比较简单,代码如下:
基本用法:maven自动加载,pom.xml配置如下:
1.加载jar包,我使用
<dependency> <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <version>1.9</version> </dependency> <!-- commons-configuration 自动加载的是2.1的版本,编译时会报错,所以再加上这个 --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency>
common-lang这个包要用新版的,如果不写这个依赖,commons-configuration会下载一个2.1旧版,导致编译出错
2.java代码:
PropertiesConfiguration config = new PropertiesConfiguration(“/database.properties”); String userName = config.getString("name");
除了getString()方法外,还有getBoolean,getDouble,getInteger等不同返回类型的方法可以调用。
进阶用法:
一个项目有会有多个配置文件,这时有个统一的配置文件管理类就很有必要了,我写了一个简单的,大家可以参考下,有不妥的用法也请指出来
1.java类
package com.xxx.xxx.util; import java.util.HashMap; import java.util.Map; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; /** * <p> * 读取配置文件类 * </p> * <p> * 根据配置文件名和属性key返回属性内容,configUtil.get(configFile, property); * </p> * @author shengzhi.rensz * */ public class configUtil { private static configUtil initor = new configUtil(); private static Map<String, Object> configMap = new HashMap<String, Object>(); private configUtil() {} /** * 获取内容 * @param configFile * @param property * @return */ public static String get(String configFile, String property) { if(!configMap.containsKey(configFile)) { initor.initConfig(configFile); } PropertiesConfiguration config = (PropertiesConfiguration) configMap.get(configFile); String value = config.getString(property); //TODO LOG return value; } /** * 载入配置文件,初始化后加入map * @param configFile */ private synchronized void initConfig(String configFile) { try { PropertiesConfiguration config = new PropertiesConfiguration(configFile); configMap.put(configFile, config); } catch (ConfigurationException e) { e.printStackTrace(); } } }
2.调用方法
configUtil.get("/common/velocity.properties", "input.encoding");
public static void readProperties() throws ConfigurationException { PropertiesConfiguration pcfg = new PropertiesConfiguration("config/cfg.properties"); System.out.println(pcfg.getString("platform.jre")); }
注意,这里的路径一定要搞清楚,配置文件是放在config文件夹中的;
相关文章
- Java 7 Concurrency Cookbook – Javier Fernández González -前言
- java实现向有序数组中插入一个元素
- Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
- Java实现 洛谷 P1583 魔法照片
- java实现第七届蓝桥杯凑算式
- Java实现 洛谷 P1738 洛谷的文件夹
- Java实现 蓝桥杯VIP 算法提高 阮小二买彩票
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- Aliyun Java Initializr 和 Spring 官方的到底有什么区别?
- java反射--通过反射了解集合泛型的本质
- 【JAVA】 04-Java中的多线程
- 深入理解JAVA虚拟机--Idea远程执行本地Java代码
- 【JAVA】java中char类型数组用数组名打印结果不是地址值而是数组内容
- 【JAVA】 03-Java中的异常和包的使用
- Java版一致性哈希
- Atitit 搜索蓝牙设备 powershell的实现 java noede.js python 先用脚本语言python nodejs,不好实现。。Java 也不好实现。。 Netcore可以,
- Java的算数运算符、关系运算符、逻辑运算符、位运算符
- Simple Logging Facade for Java (SLF4J)作用(java日志框架)
- 【java】Java教程
- 【java】Java连接mysql数据库及mysql驱动jar包下载和使用
- 【java】Java 包(package)
- Java:File.separator作用相当于 ‘ ‘
- Java 阻塞队列 BlockingQueue 详解: 生产者消费者问题
- java-mybaits-00602-查询缓存-mybatis整合ehcache
- 《深入理解java虚拟机》笔记
- Java如何创建多线程服务器?
- ZZNUOJ_用Java编写程序实现1555:双胞胎素数(附源码)
- 【java】Java 抽象类
- JAVA开发讲义(二)-Java程序设计之数据之谜一