实际项目中,读取相关的系统配置文件是很常见的事情.今天就来说一说,Golang 是如何读取YAML,JSON,INI等配置文件的. 1. json使用 JSON 应该比较熟悉,它是一种轻量级的数据交换格式.层次结构简洁清晰 ,易于阅读和编写,同时也易于机器解析和生成. 1. 创建 conf.json: { "enabled": true, "path": "/usr/local" } 2. 新建config_json.go: package ma…
1. json使用 JSON 应该比较熟悉,它是一种轻量级的数据交换格式.层次结构简洁清晰 ,易于阅读和编写,同时也易于机器解析和生成. 创建 conf.json: { "enabled": true, "path": "/usr/local" } 新建config_json.go: package main import ( "encoding/json" "fmt" "os" ) t…
前言 一般为了方便会将路径,连接信息等写到配置文件(通常会将这些信息写到yaml,ini....配置文件)中,configparser模块读取后缀为 .ini 的配置文件信息 配置文件格式 #存在 config.ini 配置文件,内容如下: [DEFAULT] excel_path = ../test_cases/case_data.xlsx log_path = ../logs/test.log log_level = 1 [email] user_name = 32@qq.com passw…
SpringBoot系列之@PropertySource支持yaml文件读取 最近在做实验,想通过@PropertySource注解读取配置文件的属性,进行映射,习惯上用properties都是测试没问题的,偶然换成yaml文件,发现都读取不到属性值 因为yaml语法很简洁,比较喜欢写yaml配置文件,很显然,@PropertySource默认不支持yaml读取,我们改成@Value注解也是可以读取的,不过属性一堆的话,一个一个读取也是很繁琐的,通过网上找资料和自己实验验证,发现是可以实现对ya…
yaml是专门用来写配置文件的语言.使用yaml来写配置文件扩展性比较强而且十分方便.spring boot支持使用yaml语言来写配置文件,使用snakeyaml库来读取配置文件.spring boot关于yaml详细用法可以参考官方文档. 下面列举一些项目中常用的写法,帮你快速入门. 1 写yml文件的基本规则 a) 层级关系用缩进表示,相同的缩进表示的层级关系相同. b) 缩进只能使用空格,不能使用tab键 例如在properties文件中有如下属性: spring. profiles.a…
适合人类编写:ini > toml > yaml > json > xml > plist可以存储的数据复杂度:xml > yaml > toml ~ json ~ plist > ini 作者:赵扶摇链接:https://www.zhihu.com/question/41253282/answer/119857880来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 其实我觉得这三者,甚至包括xml,都不是很好的配置文件格式 在…
前面已经讲过很多Golang系列知识,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来要说的是golang的并发,其实之前简单介绍过协程(goroutine)和管道(channel) 等基础内容,只是比较简单,只讲了基本的语法.今天就详细说说golang的并发编程. 一.并发和并行 Go是并发语言,而不是并行语言.所以我们在讨论,我们首先必须了解什么是并发,以及它与并行性有什么不同. 什么…
前面已经讲过很多Golang系列知识,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来要说的是golang的锁的使用场景主要涉及到哪些?读写锁为什么会比普通锁快. 一.什么场景下需要用到锁 当程序中就一个线程的时候,是不需要加锁的,但是通常实际的代码不会只是单线程,有可能是多个线程同时访问公共资源,所以这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢? 1. 多个线程在读相同的…
前面已经讲过很多Golang系列知识,包括并发,锁等内容,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来讲几个golang常见的并发模型,今天先说说生产者消费者模型. 生产者消费者模型   生产者:发送数据端 消费者:接收数据端 缓冲区: 1. 解耦(降低生产者和消费者之间耦合度) 2. 并发(生产者消费者数量不对等时,能保持正常通信) 3. 缓存(生产者和消费者 数据处理速度不一致时,…
之前,已经讲过很多Golang的东西,比如基础语法,mysql的使用,redis的使用等等,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 今天就用从头写一个完整的go的示例项目吧. 本项目完全使用原生开发,没有使用任何WEB框架和ORM.虽然大家对mvc 呀,三层架构已经很了解了.但是,我还是想从头写一个完整的示例项目.这样大家有一个更深刻的了解,这样以后介绍web框架,orm框架的时候,学习…