Skip to end of metadata
Go to start of metadata

我们推荐使用go.mod来管理项目依赖,这也是Golang官方推荐的包管理方式。

go.mod

https://github.com/gogf/gf-demos/blob/master/go.mod

module github.com/gogf/gf-demos

require github.com/gogf/gf latest

go 1.12

其中注意module名称设置为github.com/gogf/gf-demos。这里我们只需要依赖GF框架即可。其中的go 1.12表示运行该项目所需的最低Go版本,这里也可以不设置。Goland会自动帮我们设置为当前使用的Go版本。

配置文件

GF框架的核心组件均实现了便捷的文件配置管理方式,包括Server、日志组件、数据库ORM、模板引擎等等,非常强大便捷。具体的配置项可以查看后续对应的章节介绍。GF框架大部分的核心组件配置项是不区分大小写的,但是为保证规范统一,我们建议在配置文件中统一使用小驼峰形式。

https://github.com/gogf/gf-demos/blob/master/config/config.example.toml

需要注意哦,仓库中提供的config.example.toml为配置文件示例,如果想要正常运行示例程序,你可以将其拷贝或者重命名为config.toml

配置文件中如果存在文件路径相关的配置,建议统一使用绝对路径配置,会少踩很多坑。如果使用了相对路径,你得清楚知道该配置的路径相对的是哪个路径(不同的部署方式,工作目录可能不可预知)。

# HTTP Server.
[server]
	address        = ":8199"
	serverRoot     = "public"
	serverAgent    = "gf-demos"
	logPath        = "/tmp/log/gf-demos/server"
	nameToUriType  = 2
	routeOverWrite = true

# Logger configurations.
[logger]
    path   = "/tmp/log/gf-demos"
    level  = "all"
    stdout = true

# Template view configurations.
[viewer]
    path        = "template"
    defaultFile = "index.html"

# Database configurations.
[database]
    link  = "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
    debug = true
    # 数据库日志对象配置
    [database.logger]
        Path   = "/tmp/log/gf-demos/sql"
        Level  = "all"
        Stdout = true

# GF-CLI工具配置
[gfcli]
    # 自定义DAO生成配置(默认是读取database配置)
    [[gfcli.gen.dao]]
        link   = "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
        tables = "user"

启动设置

boot包中执行代码层级的初始化,比如一些组件模块的设置。

https://github.com/gogf/gf-demos/blob/master/boot/boot.go

package boot

import (
	_ "github.com/gogf/gf-demos/packed"

	"github.com/gogf/gf/frame/g"
	"github.com/gogf/swagger"
)

// 用于应用初始化。
func init() {
	s := g.Server()
	s.Plugin(&swagger.Swagger{})
}

可以看到,我们的包初始化管理使用了包初始化方法init来做隐式初始化,这样做的好处是可以在boot目录中使用不同的go文件注册不同的init来分别实现不同的初始化配置管理,在业务比较复杂的项目中比较实用。



Content Menu

  • No labels

2 Comments

  1. 配置文件的提示:

    "配置文件中如果存在文件路径相关的配置,建议统一使用绝地(这里应该改为“绝对”)路径配置,会少踩很多坑。如果使用了相对路径,你得清楚知道该配置的路径相对的是哪个路径(不同的部署方式,工作目录可能不可预知)。"

    1. 感谢指正,已修改。