李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
GO
正文
04.Beego框架参数配置
Leefs
2022-07-30 PM
1496℃
0条
[TOC] ### 前言 beego 目前支持 INI、XML、JSON、YAML 格式的配置文件解析,但是默认采用了 INI 格式解析,用户可以通过简单的配置就可以获得很大的灵活性。 ### 一、概述 beego 默认使用了 INI 格式解析配置文件,通常在项目中会存在很多系统参数、业务参数配置,这些参数通常都是通过配置文件进行配置,而且不是写死在代码里面。 例如: mysql 账号密码之类的系统参数,如果写死在代码里面,每次修改参数都得重新打包升级,非常不灵活。使用配置文件就比较方便,无需重新编译代码。 *注意:修改配置文件后,需要重启应用,配置才生效,即使使用bee run运行项目也得重启。* ### 二、Beego系统参数 beego 默认会解析当前应用下的 `conf/app.conf` 文件。 通过这个文件可以初始化很多 beego 的默认参数: ```ini #应用名称 appname = go_project # 应用监听端口 httpport = 8080 # 运行模式,常用的运行模式有dev, test, prod runmode ="dev" # 是否模板自动渲染,默认值为 true autorender = false # 是否异常恢复,默认值为 true recoverpanic = false # 模板路径,默认值是 views viewspath = "myview" ``` **beego常用配置** | 参数名 | 默认值 | 说明 | | :-------------------- | :------------- | :----------------------------------------------------------- | | AppName | beego | 应用名称,通过 `bee new` 创建的是创建的项目名 | | RunMode | dev | 程序运行模式,常用模式有dev、test、prod,一般用于区分不同的运行环境 | | RouterCaseSensitive | true | 是否路由忽略大小写匹配 | | ServerName | beego | beego 服务器默认在请求的时候输出 server 头的值。 | | RecoverPanic | true | 是否异常恢复,默认值为 true,即当应用出现异常的情况,通过 recover 恢复回来,而不会导致应用异常退出。 | | EnableGzip | false | 是否开启 gzip 支持 | | MaxMemory | 64M | 文件上传默认内存缓存大小,单位是字节 | | AutoRender | true | 是否模板自动渲染,对于 API 类型的应用,应用需要把该选项设置为 false,不需要渲染模板。 | | StaticDir | static | 静态文件目录设置 | | ViewsPath | views | 模板路径 | | Graceful | false | 是否开启热升级,默认是 false,关闭热升级。 | | ServerTimeOut | 0 | 设置 HTTP 的超时时间,默认是 0,不超时。 | | HTTPAddr | | 应用监听地址,默认为空,监听所有的网卡 IP。 | | HTTPPort | 8080 | 应用监听端口 | | EnableHTTPS | false | 是否启用 HTTPS,默认是 false 关闭。当需要启用时,先设置 EnableHTTPS = true,并设置 HTTPSCertFile 和 HTTPSKeyFile | | HTTPSAddr | | https应用监听地址,默认为空,监听所有的网卡 IP。 | | HTTPSPort | 10443 | https应用监听端口 | | HTTPSCertFile | | 开启 HTTPS 后,ssl 证书路径 | | HTTPSKeyFile | | 开启 HTTPS 之后,SSL 证书 keyfile 的路径。 | | EnableAdmin | false | 是否开启进程内监控模块,默认 false 关闭。 | | AdminAddr | localhost | 监控程序监听的地址。 | | AdminPort | 8088 | 监控程序监听的地址。 | | SessionOn | false | session 是否开启 | | SessionProvider | memory | session 的引擎, 详情参考session章节的教程 | | SessionName | beegosessionID | 存在客户端的 cookie 名称。 | | SessionGCMaxLifetime | 3600 | session 过期时间, 单位秒。 | | SessionProviderConfig | | 配置信息,根据不同的session引擎设置不同的配置信息,详细的配置请参考session章节的教程 | | SessionCookieLifeTime | 3600 | session 默认存在客户端的 cookie 的时间, 单位秒。 | | SessionDomain | | session cookie 存储域名。 | *注意:参数名不区分大小写。* ### 三、自定义参数 除了beego系统自带的配置,也可以自定义配置,然后通过`beego.AppConfig`对象的函数读取配置。 **示例** 在配置文件`app.conf`增加下面自定义配置 ```ini # 下面是关于mysql数据库的配置参数 mysql_user = "root" mysql_password = "123456" mysql_host = "127.0.0.1:3306" mysql_dbname = "test" ``` **下面是读取配置代码** ```go beego.AppConfig.String("mysql_user") beego.AppConfig.String("mysql_password") beego.AppConfig.String("mysql_host") beego.AppConfig.String("mysql_dbname") ``` `beego.AppConfig`对象,定义了一些常用的函数,用于读取配置。 **常用的函数:** | 函数名 | 说明 | | :----- | :------------------------ | | String | 以字符串的方式返回参数 | | Int | 以int类型的方式返回参数 | | Int64 | 以Int64类型的方式返回参数 | | Bool | 以Bool类型的方式返回参数 | | Float | 以Float类型的方式返回参数 | *提示: 以上函数,只有一个参数,就是配置的名字* 如果配置项的参数为空,希望返回默认值,可以使用下面的函数: | 函数名 | 说明 | | :------------ | :------------------------ | | DefaultString | 以字符串的方式返回参数 | | DefaultInt | 以int类型的方式返回参数 | | DefaultInt64 | 以Int64类型的方式返回参数 | | DefaultBool | 以Bool类型的方式返回参数 | | DefaultFloat | 以Float类型的方式返回参数 | *提示: 以上函数,只有两个参数,第一个参数是配置项名字,第二个参数是默认值* **示例** ```go // 如果mysql_port配置项的参数为空,则返回3306 beego.AppConfig.DefaultInt("mysql_port", 3306) ``` ### 四、不同运行级别的参数 前面提到 runmode 参数可以设置不同的运行级别,我们一般用来区分不同的运行环境,例如: prod、dev、test等等。 如果希望数据库配置在不同环境,账号密码都不一样,可以使用如下配置方式: ```ini # 配置运行级别 runmode = test [dev] mysql_user = "root" mysql_password = "123456" mysql_host = "127.0.0.1:3306" mysql_dbname = "test1" [test] mysql_user = "root" mysql_password = "654321" mysql_host = "192.168.129.101:3306" mysql_dbname = "test2" [prod] mysql_user = "root" mysql_password = "741852" mysql_host = "192.168.129.102:3306" mysql_dbname = "test3" ``` 上面的例子,为dev,test,prod三个环境配置了不同的数据库参数,当通过`beego.AppConfig`读取参数的时候,由runmode决定读取哪个环境的参数。 ```go s := beego.AppConfig.String("mysql_password") fmt.Println(s) //123456 ``` ### 五、使用多个配置文件 在实际项目中,一般都使用多个配置文件管理配置,多个配置文件也方便模块化管理配置。 例如新建一个`app-dev.conf`配置文件,用来保存数据库、Redis等非公共连接配置: ```ini mysql_user = "root" mysql_password = "123456" mysql_host = "127.0.0.1:3306" mysql_dbname = "test" #redis 模式 #server: 单机服务模式 cluster:集群模式 redis_mode= "server" #redis 数据库 redis_db =0 #redis主机地址 redis_addr = "127.0.0.1:6379" #redis密码 redis_password ="123456" ``` 然后在conf/app.conf主配置文件中,通过include 将`app-dev.conf`配置文件包含进去。 ```ini appname = go_project httpport = 8080 runmode = dev # 包含app-dev配置 include "app-dev.conf" ``` 这种通过include包含其他配置文件的方式,跟把所有配置都写在一个配置文件的效果是一样的, 区别就是使用多个配置文件,各个模块的配置更加清晰。 *说明: 无论是使用include包含配置文件,还是直接将所有配置都写在一个配置文件,读取配置的方式都一样。* ### 六、 支持环境变量配置 到目前为止,我们的配置参数都是通过ini配置文件进行配置,如果想通过环境变量进行配置怎么办?在docker容器环境运行,通常都需要通过环境变量配置应用参数。 beego支持优先从环境变量中读取参数, 只要在ini配置文件中通过 **${环境变量名}**,定义配置项的值。 **示例** ```ini runmode = "${APP_RUN_MODE || dev}" httpport = "${APP_PORT || 9090}" ``` **说明** + 如果环境变量`APP_RUN_MODE`值不为空,runmode配置的参数就等于`APP_RUN_MODE`环境变量的值,如果为空,则使用dev作为默认参数。 + 同理`APP_PORT`为空,则使用9090作为默认值,否则使用`APP_PORT`的值。 *附原文链接地址* *http://www.codebaoku.com/beego/beego-config.html*
标签:
Beego
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/2284.html
上一篇
03.Beego框架快速入门
下一篇
05.Beego路由配置
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
Redis
队列
高并发
Spark
微服务
数据结构
数据结构和算法
Hadoop
机器学习
Nacos
ClickHouse
Shiro
工具
FileBeat
nginx
Netty
线程池
Spark RDD
Golang基础
Spark Streaming
JavaWeb
BurpSuite
Yarn
Docker
FastDFS
算法
Beego
Java编程思想
Linux
散列
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞