我们使用 "bee new beegoProjectName" 后会在 "beegoProjectName" 目录下有一个自动生成的 “conf/app.conf” 文件, “conf/app.conf” 文件就是我们beego项目的默认配置文件,里面的默认内容有:
appname = beego_project // 就是我们beego项目编译后的名字(默认和bee new beegoProjectName一样) httpport = 8080 // beego项目启动时默认监听的端口 runmode = dev // runmode:这个参数后面做介绍
一、beego读取配置文件里的配置项
1.1、获取字符串类型的配置项目
httpport := beego.AppConfig.String("httpport") // 从配置文件里读取httpport配置项获取到的结果是string类型,AppConfig后面调用的什么方法获取到的就是什么类型的数据。除了String()方法外其他方法都有两个返回值(一个是读取到的数据(如果转换失败时读取到的数据就是类型的默认值),另一个是类型转换的错误信息)
说明:
beego.AppConfig.String("httpport")可以获取整形、浮点型的所有类型的配置项目,但是获取到的结果是字符串类型。
1.2、获取其他类型的参数数据
httpport, err := beego.AppConfig.Int("httpport") // 从配置文件里读取httpport配置项并转换为int类型,转换成功就没有报错,转换失败就有报错 httpport, err := beego.AppConfig.Float("httpport") // 从配置文件里读取httpport配置项并转换为float类型,转换成功就没有报错,转换失败就有报错
说明:
除了 “beego.AppConfig.String()” 外,所有的获取参数类型的方法都有两个返回值,一个是获取到的结果,另一个是报错信息(如果类型转换失败就会报错)。
二、配置文件里的runmode使用
假设现在我的程序的配置文件是如下内容:
appname = beego_project httpport = 8080 runmode = dev copyrequestbody = true [dev] // 当runmode = dev时,表示获取[dev]标签下的username和passwd变量 username = "dev" passwd = "dev" [test] // 当runmode = test时,表示获取[test]标签下的username和passwd变量 username = "test" passwd = "test" [prod] // 当runmode = prod时,表示获取[prod]标签下的username和passwd变量 username = "prod" passwd = "prod"
当runmode = dev时,即程序获取到的username和passwd的变量值是[dev]下的变量值,同理,如果runmode = prod时,程序获取的是[prod]下的username和passwd
三、多个配置文件使用
默认情况下beego只有一个 “conf/app.conf” 配置文件,如果我们需要将数据库的配置文件单独弄一个配置文件该如何操作那?
3.1、第一步:在 “beegoProjectName/conf/” 新建 “db.conf” 文件
3.2、第二步:在 “beegoProjectName/conf/app.conf” 里最下边添加如下内容引用 “db.conf”
include "db.conf" // db.conf文件需要在conf目录下
四、其他参数说明
- RouterCaseSensitive:是否忽略大小写匹配,默认是true(区分大小写),具体参数:beego.BConfig.RouterCaseSensitive = true
- ServerName:beego服务端在请求的时候输出server为beego,具体参数:beego.BConfig.ServerName = "beego"
- EnableGzip:是否开启gzip支持,默认false不支持gzip,一旦开启gzip,那么在模板输出的内容会进行gzip或zlib压缩,根据用户的Accept-Encoding来判断,具体参数:beego.BConfig.EnableGzip = false
- gzip允许用户自定义压缩级别、压缩长度阈值和针对请求类型压缩
1、压缩级别:gzipCompressLevel = 9 - 取值1-9,如果不设置为1(最快压缩)
2、压缩长度阈值,gzipMinLength = 256,党员是内容长度大于此阈值时才开启压缩,默认为20B(nginx默认长度)
3、请求类型,includedMethods = get;post,针对那些请求类型进行压缩,默认只针对GET请求压缩
- MaxMemory:文件上传默认内存大小,默认值值是1<<26(64M),具体配置:beego.BConfig.MaxMemory = 1 << 26
- copyrequestbody:是够支持获取 Request Body 里的 JSON 或 XML 的数据,默认是false