golang应用快速搭建框架jotnar 博客/golang

jotnar 是一个golang项目快速搭建的框架,它本身是集成其它常用的框架,以达到快速开发的目的

安装

go get -u github.com/paulyung541/jotnar

初始化

jotnar

配置初始化

将命令行传参或者配置文件的设置加载到内存中,并在任何地方随心所欲地使用它们。

这里提供了2种选择:

  • 命令行传参
  • 使用viper这个优秀的配置文件读取框架

命令行传参方式进行初始化

./application --ip 192.168.0.1 —port 100

golang代码中可以这样初始化和读取

jotnar.New().InitConfigDefaultCommandFlag()
fmt.Println(jotnar.GetVaule(“ip”))

使用viper方式

-f
./application -f config.toml

你的toml文件如下

[server]
    url = “myserver.com”

代码里通过下面方式初始化和读取

jotnar.New().InitConfigViperToml()
fmt.Println(jotnar.GetViper().GetString(“server.url”))

如果需要单元测试里进行初始化,则用下面的代码指定文件位置

func TestRead(t *testing.T) {
    jotnar.New().InitConfigViperTomlTest(“config.toml”)
    t.Log(jotnar.GetViper().GetString("server.url"))
}

数据库初始化

默认使用了gorm作为数据库连接和orm框架,默认可以配置2个mysql实例,一个进行读,一个进行写,如果只配置了一个,则读写都是这一个

toml配置如下

[mysql.main]
    dsn = “root:@tcp(localhost:3306)/test?charset=utf8&parseTime=True&loc=Local”
    maxIdle = 5
    maxOpen = 10

一个简单的例子

package main

import (
    "fmt"

    "github.com/paulyung541/jotnar"
)

type Student struct {
    ID   uint32
    Name string
    sex  uint8
}

func (*Student) TableName() string {
    return "student"
}

func main() {
    fmt.Println("this is example")

    jotnar.New().
        InitConfigViperToml().
        InitMysql().
        Init(func() {
            fmt.Println("initialization over")
        })

    var stu Student

    if err := jotnar.ReadGorm().First(&stu).Error; err != nil {
        fmt.Println(err.Error())
        return
    }
    fmt.Printf("stu = %+v\n", stu)
}
*gorm.DB
jotnar.ReadGorm()
jotnar.WriteGorm()

未完…