使用 github.com/fsnotify/fsnotify
,监听 Create
、Remove
、Write
、Chmod
、Rename
等事件,实现对文件状态的实时监听,当文件有变化时执行已注册的回调函数(如下),实现对配置的重新加载。
1 | // CallbackFunc 配置回调函数 |
以读取配置为例,来说明如何实现热加载:
定义配置文件对应结构体
配置文件 config.json
内容:
1 | { |
为配置文件定义结构:
1 | type Config struct { |
定义读取配置文件的方法
1 | var cnf Config |
注册回调
1 | // 1. 注册配置文件监听及回调 |
启动监听
1 | // 2. 启动监听 |
完整 demo
1 | package main |
输出(可以看到 demo
读取到 conf/config.json
的内容):
1 | config:{Model:aaaaa} |