TypeSafe config & HOCON + Read properties in java (with example)

pyhocon:适用于Python的HOCON解析器 pyhocon 适用于Python的HOCON解析器 眼镜 安装 它在pypi上可用,因此您可以按以下方式安装它: $ pip install pyhocon 用法 解析后的配置可以看作是嵌套的字典(具有自动推断的类型),可以使用普通的字典getter(例如conf['a']['b']或使用conf['a.b']等路径来访问值) conf['a.b'] ),或通过这些方法get , get_int (如果它不是一个int),抛出异常get_string , get_list , get_float , get_bool , get_config 。 from pyhocon import ConfigFactory conf = ConfigFactory . parse_file ( 'samples/database.conf' ) host = conf . get_strin 立即下载
  • Given a java application, We would like to read the property file defined in HOCON (Human-Optimized Config Object Notation.) format.
  • The property files use the suffix .conf e.g. application.conf, reference.conf.
  • We are performing following operations:
    • Reading the property file defined in reference.conf file.
    • Substituting environment variable in reference conf file.
      • java_directory = ${?JAVA_HOME}
    • We have created runnable jar to invoke main method of jar.
    • We are logging the properties using slf4j-log4j12.

TypeSafe Config Maven dependency:


<dependency>
    <groupId>com.typesafe</groupId>
    <artifactId>config</artifactId>
    <version>1.3.0</version>
</dependency>

Property file in HOCON format (reference.conf file)


userInfo {
	name=Mike
	age = 30
	roles = [
		guest
		read-only
	]	
}
database {
 user=admin
 password=admin
}
//Read environment variable
java_directory = ${?JAVA_HOME}

Program to read HOCON or TypfeSafe property file in java

We are loading reference.conf using ConfigFactory.load()


package org.learn.application;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;

public class Application {
	private static final Logger logger = LoggerFactory.getLogger(Application.class);
	private static final Config config = ConfigFactory.load();
	public static void main(String[] args) {
		
		logger.info("Start Reading HOCON file:");

		logger.info("UserName={}",config.getString("userInfo.name"));
		logger.info("age={}",config.getInt("userInfo.age"));
		logger.info("Array of roles={}",config.getStringList("userInfo.roles"));
		
		logger.info("Database userName={}",config.getString("database.user"));
		logger.info("Database password={}",config.getString("database.password"));
		
		//Read environment variable
		if(config.hasPath("java_directory")) {
			logger.info("Java installed directory={}",config.getString("java_directory"));
		}
		
		logger.info("End reading HOCON file");
	}
}

Output – Read HOCON or TypeSafe config file in java


2016-07-06 21:09:58,754	[INFO] org.learn.application.Application [main] Start Reading HOCON file:
2016-07-06 21:09:58,759	[INFO] org.learn.application.Application [main] UserName=Mike
2016-07-06 21:09:58,760	[INFO] org.learn.application.Application [main] age=30
2016-07-06 21:09:58,761	[INFO] org.learn.application.Application [main] Array of roles=[guest, read-only]
2016-07-06 21:09:58,761	[INFO] org.learn.application.Application [main] Database userName=admin
2016-07-06 21:09:58,761	[INFO] org.learn.application.Application [main] Database password=admin
2016-07-06 21:09:58,761	[INFO] org.learn.application.Application [main] Java installed directory=C:\Program Files\Java\jdk1.8.0_60
2016-07-06 21:09:58,761	[INFO] org.learn.application.Application [main] End reading HOCON file
hocon-python:https的Python端口 JVM语言的配置库。 概述 以纯Java实现,没有依赖项 广泛的测试范围 支持三种格式的文件:Java属性,JSON和人性化的JSON超集 合并所有格式的多个文件 可以从文件,URL或类路径加载 对&ldquo;嵌套&rdquo;的良好支持(将配置的任何子树与整个配置相同) 用户可以使用Java系统属性java -Dmyapp.foo.bar=10覆盖配置。 支持通过单个文件(例如application.conf配置带有框架和库的application.conf 解析持续时间和大小设置,&ldquo; 512k&rdquo;或&ldquo; 10秒&rdquo; 转换类型,因此,如果您要求布尔值并且值是字符串&ldquo; yes&rdquo;,或者您要求浮点数并且值是int值,它将进行计算。 JSON超集功能: 注释 包括 替换( &quot;foo&quot; : ${bar} , &quot;foo&quot; : Hello ${who} ) 类似于属性的表示法( ab=c ) 噪音少,语法宽松 替 立即下载

相关推荐

Go-HOCON配置格式解析器

HOCON 配置格式解析器

JAVA HOCON格式配置读取实例

HOCON简介 HOCON(Human-Optimized Config Object Notation)是一个易于使用的配置文件格式,具有面向对象风格。 目录 如需从res目录默认加载,则必须命名为application.conf 组成部分 一个 key 是一个键值对字符串中的前一个值 一个 value 可以是字符串、数字、对象、数组或者布尔值并紧随 key 的后面 一个 key-value ...

魏菱延的博客 7493

数据中心——Vxlan基本概念1

东西流量指的就是横向流量-------例如:服务器与服务器之间交换流量南北流量指的就是纵向流量-------例如:客户端和服务器之间的流量以下主要是讲解业务平面的网络架构(一般业务平面就需要用到专用的数据中心交换机)

m0_49864110的博客 1万+

hocon配置文件_未知的配置格式:hocon(支持的格式为:[json,原始,属性]

I am trying to use the Hocon format for configuration in Vertx. I have also added the maven dependency for it.com.typesafeconfig1.3.3io.vertxvertx-config-hocon3.5.1The code compiles fine in eclipse.Ve...

weixin_36452379的博客 392

3D IC中Memory-on-Logic堆叠测试的DFT解决方案与工程实践

在半导体行业,随着摩尔定律逼近物理极限,3D IC技术通过芯片垂直堆叠实现性能提升和异构集成,已成为重要发展方向。其核心原理是利用硅通孔(TSV)或微凸块实现芯片间电气互连,将多个不同功能的芯片(如逻辑芯片与存储芯片)集成在一个封装内。这项技术的核心价值在于能大幅提升系统性能、降低功耗并实现更小的封装尺寸。然而,芯片堆叠后,传统的测试方法面临巨大挑战,尤其是测试访问存在物理屏障,无法直接探测被覆盖的芯片接口。为此,可测试性设计(DFT)成为确保3D IC可靠性与量产可行性的关键技术。它通过在设计阶段植入专用

weixin_42521058的博客 631

三菱PLC FX3U温度控制系统案例

U0\G100是平均次数的设置,设置为100个数据取平均,这样数据显示更加稳定,通道1的数据显示再U0\G10里面,温度模块的数据对应是0~150°输出0~10V,对应到0~10000的数据10000是150°的66.667倍,因此把数据传送到D0后转换成浮点数,再去除以66.667,就得到实际的温度了,数据存放到D2。触摸屏软件使用EBpro软件,设计界面如下,右边的是温度的实时曲线图,左边的是温度报警表,当当前温度超过了报警温度这种时,就会在这个表格上显示对应对应的报警。(1)实时显示温度值;

u010670857的博客 4058

HOCON

HOCON(Human-Optimized Config Object Notation)是一个易于使用的配置文件格式。它被用于 Sponge 以及利用 SpongeAPI 的独立插件以储存重要的数据,比如配置或者玩家数据。HOCON 文件通常以.conf作为后缀名。 组成部分 一个key是一个键值对字符串中的前一个值 一个value可以是字符串、数字、对象、数组或者布尔值并紧随key的后面 一个key-valueseparator把键和值分离,可以是:...

m0_43394269的博客 976

神联动:LSTM+卡尔曼滤波!一区大门轻松开!

近来热度飙升,成为时间序列预测和状态估计等领域的香饽饽,非常好发高区!主要在于:这两者结合,不仅能提高模型预测准确性;还能拓展应用场景,为我们的论文创新提供发挥空间,且当下还在蓝海阶段,还不算卷。具体点说:卡尔曼滤波擅长处理线性状态估计和噪声,能使LSTM更好地适应动态环境的变化,减少噪声干扰,降低预测误差。而LSTM通过捕捉长期依赖关系,擅长处理非线性时间序列,能够弥补卡尔曼滤波在这方面的不足,从而把应用场景从传统的状态估计,延伸到金融预测、工业检测、自动驾驶等任务。

2401_82426425的博客 2208

Hibernate在控制台打印sql语句以及参数

一、环境说明: IntelliJ IDEA 2017.3.4 版本;SpringBoot 2.0.0.RELEASE;hibernate用的是JPA自带。 二、打印sql语句到控制台 首先,我使用的是application.properties配置文件,使用yml也可以达到同样的效果。 在网上查这个问题查了好久,基本上都是xml配置,在此不多说; 正确的properties配置项应该如下图所示: 在jpa下一级不直接是hibernate,而是properties。 spring.jpa.pr

一个摩羯座的程序猿 2178

基于光电传感的非接触式酒精浓度检测系统设计与实现

本文详细介绍了基于光电传感技术的非接触式酒精浓度检测系统设计与实现。系统利用940nm红外LED和OPT101光电传感器,结合朗伯-比尔定律,通过STM32微控制器进行信号采集与处理,实现了快速、准确的酒精浓度测量,测量精度达±1%,适用于工业检测和便携式应用场景。

y7z8a的博客 363

基于HPM5E00的EtherCAT从站开发实战:从硬件解析到软件调试

实时工业以太网通信是工业自动化与运动控制领域的核心技术,它通过硬件与协议栈的协同,实现了微秒级的高确定性数据交换。其技术价值在于为多轴同步、机器人控制等复杂场景提供了高实时性、高同步精度的通信基础。在应用场景上,广泛服务于数控机床、包装机械、半导体设备等高端制造领域。本文聚焦于EtherCAT从站开发,深入解析了基于先楫HPM5E00高性能MCU与专用从站控制器(ESC)的硬件架构设计,并详细阐述了开源协议栈SOES的移植、对象字典配置以及过程数据(PDO)映射等核心软件实践,为开发者快速构建稳定可靠的实时

weixin_30915951的博客 501

hocon配置文件_json – Hocon:从配置文件中读取一组对象

我创建了一个Play应用程序(2.1),它使用Hocon format中conf / application.conf中的配置.我想在配置中添加一个项目数组.文件conf / application.conf如下所示:...projects = [{name: "SO", url: "https://stackoverflow.com/"},{name: "google", url: "http:...

weixin_42507868的博客 518

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Linux应用】龙芯派loongsonpai开发者日记(三)----文件系统

前言 本节主要讲述如何配置boot和文件系统。 1.准备工作 将编译生成的vmlinuz拷贝到龙芯派中,这里我们用winscp工具来操作。 另外建议开启SSH服务,root下执行以下命令就可以 sudo service sshd start 此时,我们操作单板的方式就有:串口,SSH,FTP。开发工作即将开始。 2.boot配置 编辑boot.cfg文件,增加一组,设置波特率等 3.文件系统 buildroot官网:https://buildroot.org/ 下载buildroot-2020.0

平凡的世界 967

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IDEA之常用插件

原文在这里

enjoy.day 1017

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

探索高效配置管理:Pyhocon —— Python的HOCON解析器

探索高效配置管理:Pyhocon —— Python的HOCON解析器 在软件开发中,配置文件起着至关重要的作用,它们为应用程序提供运行时的设置和参数。Python社区广泛使用的配置管理工具有很多,但今天我们要探讨的是一个特别的工具——Pyhocon,它是一个强大的HOCON(Human-Oriented Configuration)格式解析器。HOCON由TypeSafe公司设计,旨在提供一种更...

gitblog_00023的博客 751

Java配置工具:typesafe config使用文档超详解

版本1.2.1和更早的版本支持Java 6,而更新的版本(1.3.0和更高版本)支持Java 8。引包:

秃了也弱了 2640

HOCON基本语法解析及对根结构的宽松要求

HOCON作为一种人性化配置对象表示法,借用了JSON的相关概念,并且在基本语法和对根结构的要求上有一些区别。如果一个HOCON文件省略了开头的左括号({)而没有省略结尾的右括号(}),那么它将被视为不合法的。键值对:一个key是键值对字符串中的前一个值,一个value可以是字符串、数字、对象、数组或布尔值,并紧随key的后面。通过本文的介绍,您应该对HOCON的基本语法和对根结构的宽松要求有了更好的了解。这种对根结构的宽松要求使得HOCON格式更加灵活,可以适应不同类型的配置文件。

qq_40427481的博客 807

Pyhocon: HOCON解析器的Python实现

Pyhocon: HOCON解析器的Python实现 项目介绍 Pyhocon 是一款专为 Python 设计的 HOCON (Human Oriented Configuration Object Notation) 解析库。HOCON是一种配置文件格式,它相比JSON更易于阅读和编写,支持注释、缩进表示层次关系以及变量替换等特性。Pyhocon让你能够在Python项目中无缝地使用HOCON配...

gitblog_00115的博客 570

java config getlist,Java Config.getIntList方法代码示例

import com.typesafe.config.Config; //导入方法依赖的package包/类public static void main(String[] args) {// {{start:resource}}Config defaultConfig = ConfigFactory.parseResources("defaults.conf");// {{end:resourc...

weixin_35676444的博客 288

hadoop java 读写入文件_Hadoop中文件读写(Java)

前言在本文档中,你将了解到如何用Java接口读写Hadoop分布式系统中的文件,以及编码的转换等问题。其中有些细节,在你不知道的时候,是非常容易出错的。 这边读写文件分以下三种情况:1. 在非Map Reduce过程中读写分布式文件系统中的文件比如说,你想自己遍历一个文件,想截断一个文件,都属于这种方式。一般该过程发生在run函数中,程序员处理Map Reduce产生的中间文件上。2. 在map(...

weixin_39588223的博客 437

一个脚本搞定‘toml‘, ‘hocon‘, ‘json‘, ‘yaml‘, ‘ini‘, ‘properties‘配置文件的读写

  最近在整理配置文件的读写操作时,发现除了 ‘json’, ‘yaml’, ‘ini’,还有java中常用的 ‘properties’,以及没有接触过的’toml’, 'hocon’这两种。关于配置文件说明,大家可以参考:https://colobu.com/2017/08/31/configuration-file-format/   一般在读取出来的配置,会转换成字典类型,进行使用。所以整理了对以上六种配置文件的读取成字典的类:ConfigFileRead()。其中每种方法,定义为了静态方法方便在类外

qq_17328759的博客 8814

Python读取配置文件

python没有自带的处理yaml文件的库,需要下载第三方库PyYAML 或 ruamel.yaml ,这里我们安装PyYAML ,同时写入测试数据。环境变量,顾名思义,其为不变的量,相当于一个常量,所以这里就不提供修改环境变量的值,再加载到文件中的方法了。TOML 的目标是成为一个极简的配置文件格式。项目中的环境变量写到.env文件里,以k,v的方式读取作为环境变量。基本的配置文件的读取方式都在这里了,大家可以根据自己的需求学习!XML 易于扩展,主要用来传送和存储数据,聚焦的是数据的内容。

一个专注于机器学习基础与实战的技术博客,内容涵盖算法推导、模型实现、数学原理与代码实践。用通俗的语言解析复杂概念,记录学习过程中的思考与总结,适合机器学习爱好者和从业者参考。 1万+

hocon配置文件_HOCON 配置文件读取工具 https://github.com/go-akka/configuration

HOCON (Human-Optimized Config Object Notation)Currently, some features are not implemented, the API might be a little changed in the future.example.gopackage mainimport ("fmt""github.com/go-akka/confi...

weixin_31885977的博客 369

深入理解Scala默认参数函数:从方法重载到优雅API设计

我写这篇文章的时候,特意没罗列默认参数有多少种用法——因为用法很简单,谁都能写。默认参数为什么重要?可选参数。Java里你想要可选参数?写重载方法。想要几个?写一堆。代码臃肿,维护痛苦。Scala的默认参数把这件事简化了——一行函数签名,编译器帮你生成所有的重载方法。调用方想用默认值就用默认值,想改哪个就改哪个,不用管顺序。把重复的事情交给编译器,让程序员专注在业务逻辑上。你不用手写重载方法——编译器帮你写。你不用记参数顺序——命名参数帮你记。你不用写Builder类——默认参数就是Builder。

https://starzy1990.github.io/ 751
上一篇: Java Thread join() 的用法
下一篇: Understanding Haskell types
DViewer
博客等级 码龄16年 16粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值