【JAVA开发小技巧】Properties类读取properties、yml配置文件中的内容

您所在的位置:网站首页 python修改yaml文件某些字段 【JAVA开发小技巧】Properties类读取properties、yml配置文件中的内容

【JAVA开发小技巧】Properties类读取properties、yml配置文件中的内容

2024-07-09 21:52| 来源: 网络整理| 查看: 265

文章目录 前言一、读取配置文件的方法二、读取配置文件案例1.读取properties文件2.读取yml文件 后话

前言

当我们将项目部署到服务器上之后,我们不能专门地对代码中的常量进行修改,除非更新部署新的项目,但是我们的项目在上次更新之后,很有可能在其它方面也做了更新升级,这些更新的内容只有在通过测试之后才有资格部署到生产环境下。所以我们要想办法,解除常量与项目代码的耦合度,解决办法就是,当我们将项目部署到生产环境之后,能将项目中的常量进行配置化的管理。也就是说,项目中的常量最好是来源于配置文件的读取,这样我们只要修改配置文件即可修改项目中的常量。

一、读取配置文件的方法

在搭建了Spring的项目中,读取配置文件最简单的方法就是使用@Value注解读取配置文件中的常量,但是有些项目并没有搭建Spring,所以本文要讨论的是如何在不使用@Value的状况下获取到配置文件中的内容。

JAVA代码中读取properties文件的内容要用到一个类,Properties。Properties类表示一组持久的属性。 Properties可以保存到流中或从流中加载。 属性列表中的每个键及其对应的值都是一个字符串。

Properties类常用的方法如下: 在这里插入图片描述 我们逐一看看如何使用这些方法: 1.getProperty方法:这个方法使用起来很简单,就是通过配置文件中的键获得对应的值,两个参数的情况传入一个默认值。 2.list方法:将配置文件得到的属性列表输出到指定的输出流当中。 3.load方法和loadFromXML方法:毫无疑问,这两个方法就是将配置文件读取到Properties对象当中,前者用于读取properties文件,后者用于读取xml文件。 4.propertyNames方法和stringPropertyNames方法:这两个方法可以返回配置文件中的属性列表,propertyNames方法返回Enumeration类型,stringPropertyNames方法返回不存在重复元素的Set类型。 5.setProperty方法:类似HashMap的put方法。 6.store方法和storeToXML方法:都是将属性列表保存到输出流当中。

二、读取配置文件案例 1.读取properties文件

比如我们想读取配置文件conf.properties中的键值对,保存到内存的Map当中,conf.properties的内容如下:

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@192.168.0.1:1521 jdbc.username=oracle jdbc.password=oracle

conf.properties直接配置在类加载路径下,我们可以通过以下代码读取:

public class PropertiesTest { private static Map propertiesMap = new HashMap(); // 将配置文件中的所有键值对读取到Map中 public static void main(String[] args) { // 读取依赖配置对象 Properties properties = new Properties(); // 读取输入流 InputStream inputStream = PropertiesTest.class.getClassLoader().getResourceAsStream("conf.properties"); // 输入流加载过程中可能抛出IO异常 try { // 从输入流中加载属性列表 properties.load(inputStream); // 获取properties文件中的属性值 Set propertyNameSet = properties.stringPropertyNames(); for (String propertyKey : propertyNameSet) { String propertyValue = properties.getProperty(propertyKey); if(propertyKey != null && propertyValue != null){ propertiesMap.put(propertyKey, propertyValue); } } } catch (IOException e) { e.printStackTrace(); } finally { try{ // 关闭IO流,防止内存泄漏 assert inputStream != null; inputStream.close(); } catch (Exception e){ e.printStackTrace(); } } } } 2.读取yml文件

除了properties作为配置文件,我们也常常可以看到使用yml甚至是yaml作为配置文件的Spring项目,虽然它们和properties的配置作用十分相似,不过读取内容的方法还是很不同的,读取yml文件的方法有很多种,而本文的重点是讨论用Properties类来读取yml配置文件。 在Spring项目中可以用到YamlPropertiesFactoryBean类,来读取并加载yml配置文件到Properties类,所以读取方法如下:

YamlPropertiesFactoryBean yamlProFb = new YamlPropertiesFactoryBean(); yamlProFb.setResources(new ClassPathResource("application.yml")); Properties MyProperties = yamlProFb.getObject();

在获取到Properties对象之后,我们仿照读取properties文件的方法,将内容保存到Map当中,或者另做它用,比如加载数据源配置信息到数据源对象当中。

后话

我们常常通过读取配置文件中对于数据库的配置,从而加载数据源对象到内存当中,接下来,我们可以通过数据源对象并通过JAVA原装的JDBC访问数据库:(待更新) 至于读取xml配置文件的内容,我们一般用的是DOM4j来实现,详情可见:(待更新)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3