【JAVA开发小技巧】Properties类读取properties、yml配置文件中的内容 |
您所在的位置:网站首页 › python修改yaml文件某些字段 › 【JAVA开发小技巧】Properties类读取properties、yml配置文件中的内容 |
文章目录
前言一、读取配置文件的方法二、读取配置文件案例1.读取properties文件2.读取yml文件
后话
前言
当我们将项目部署到服务器上之后,我们不能专门地对代码中的常量进行修改,除非更新部署新的项目,但是我们的项目在上次更新之后,很有可能在其它方面也做了更新升级,这些更新的内容只有在通过测试之后才有资格部署到生产环境下。所以我们要想办法,解除常量与项目代码的耦合度,解决办法就是,当我们将项目部署到生产环境之后,能将项目中的常量进行配置化的管理。也就是说,项目中的常量最好是来源于配置文件的读取,这样我们只要修改配置文件即可修改项目中的常量。 一、读取配置文件的方法在搭建了Spring的项目中,读取配置文件最简单的方法就是使用@Value注解读取配置文件中的常量,但是有些项目并没有搭建Spring,所以本文要讨论的是如何在不使用@Value的状况下获取到配置文件中的内容。 JAVA代码中读取properties文件的内容要用到一个类,Properties。Properties类表示一组持久的属性。 Properties可以保存到流中或从流中加载。 属性列表中的每个键及其对应的值都是一个字符串。 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=oracleconf.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 |