需求:对于配置文件不要直接在代码中进行定义和使用,而是单独放到配置文件的目录中,以便区分环境使用不同的配置。
分离前代码:
代码语言:javascript复制database, err := sqlx.Open("mysql", "root:XXXX@tcp(127.0.0.1:3306)/test")
修改为读取配置文件
- 创建文件 config/main.toml
app_name = "awesome web"
# possible values: DEBUG, INFO, WARNING, ERROR, FATAL
log_level = "DEBUG"
[mysql]
ip = "127.0.0.1"
port = 3306
user = "dj"
password = 123456
database = "awesome"
[redis]
ip = "127.0.0.1"
port = 7381
- 读取配置文件的值,示例:
viper.SetConfigName("main")
viper.SetConfigType("toml")
viper.AddConfigPath("./config")
viper.SetDefault("redis.port", 6381)
err := viper.ReadInConfig()
if err != nil {
fmt.Println( err)
}
fmt.Println(viper.Get("mysql"))
fmt.Println(viper.Get("mysql.ip"))
从而做到配置文件的分离。
参考:
viper 库的使用链接