已经停药30天,目前情况良好,就是受凉后,颈椎难受,各种小毛病,自己也懒惰,现在开始做了点golang的接口,这样可以做HTML5的项目,好了 ,废话少说了,先说下接下来用哪些技术
1. gin 之所以选择他,看性能很高,目前也算稳定,版本发布也不是很快, echo变化有些快
2. seelog 日志输出
3. xorm 数据库操作 我只用纯sql
4. config 配置文件使用 github.com/robfig/config
可能使用java的习惯
我的结构如下:
huzhu
|_action
|_conf
|_config.cfg
|_seelog.xml
|_models
|_xxx.go
|_service
|_init.go
|_xxx.Service.go
|_utils
|_conf
|_conf.go
|_init.go
|_utils.go
|_app.go
目前结构如上
service下的init.go
package service import ( _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" "github.com/go-xorm/core" log "github.com/cihub/seelog" "huzhu/utils/conf" ) var engine *xorm.Engine func InitDB() { defer log.Flush() cfg := conf.Config cfg.SetSection("DB") driverName,_ := cfg.String("driverName") dataSourceName,_ :=cfg.String("dataSourceName") var err error engine, err = xorm.NewEngine(driverName,dataSourceName) if(err != nil) { log.Error("InitDB ===> ",err) } //最大连接数量 engine.SetMaxConns(800) //最大闲置数量 engine.SetMaxIdleConns(30) //打印SQL // engine.ShowSQL = true //打印SQL错误 // engine.ShowErr = true //sta_开头的表 tbMapper := core.NewPrefixMapper(core.SnakeMapper{}, "sta_") engine.SetTableMapper(tbMapper) }
app.go
package main import ( "net/http" "time" "github.com/gin-gonic/gin" log "github.com/cihub/seelog" "huzhu/action" "huzhu/service" "huzhu/utils/conf" ) func init() { //加载配置文件 conf.InitConf("conf/config.cfg") //数据库初始化 service.InitDB() //初始化日志 initLog() } //初始化日志 func initLog() { logger, err := log.LoggerFromConfigAsFile("conf/seelog.xml") if err != nil { log.Error("解析日志配置文件失败", err) return } log.ReplaceLogger(logger) } func main() { //设置生产环境 // gin.SetMode(gin.ReleaseMode) router := gin.Default() router.GET("/xxx.do", action.xxx) s := &http.Server{ Addr: ":80", Handler: router, ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, MaxHeaderBytes: 1 << 20, } s.ListenAndServe() }
以上简单配置,先到这里,后面会把一个demo发上来,大家自己试试,写的不好,请大家谅解。
目前小主比较可怜,没人发表,只有自己默默的坚守,不管如何,希望可以帮助有需要的人,给自己加油...
www.huzhu.me