MVC 应用一般结构
目录结构说明如下
名称 | 内容 |
---|---|
model | 模型层目录,类比Java 中的entity |
view | 视图层,存放所有templete模板 |
ctrl | 控制器层, 存放全部控制器 |
service | 服务层,类比Java里面的service |
html | 一些静态资源页面 |
util | 核心工具包,Md5加密,返回数据封装等 |
asset | 静态资源目录,存放js/css/image等 |
args | 封装全部请求参数对象 |
mnt | 上传文件的存放目录 |
app.dev.conf | 开发环境配置文件 |
app.prod.conf | 生产环境配置文件 |
start.sh/start.bat | 启动脚本 |
build.sh/build.bat | 打包脚本 |
main.go | 主应用程序文件 |
主程序结构
主程序主要做各种初始化工作
func main() {
//解析配置文件
fpath := flag.String("c","app.dev.conf","config file path")
flag.Parse()
_,err:=util.Parse(*fpath)
if err!=nil{
fmt.Sprintf("error when %s",err.Error())
return
}
//配置日志
logmap := util.GetSec("log")
service.InitLog(logmap)
//初始化数据库
dbmap := util.GetSec("database")
service.InitDb(dbmap)
//注册funcmap
ctrl.RegisterFuncMap()
//控制器
ctrl.RegisterCtrl()
//静态资源文件
fileservermap := util.GetSec("fileserver")
ctrl.InitFileServer(fileservermap)
//初始化session
sessioncfg:=util.GetSec("session")
util.StartSession(sessioncfg)
appcfg := util.GetSec("app")
//视图控制器
ctrl.RegisterView(appcfg)
fmt.Println("http ListenAndServe " + appcfg["addr"])
//打开服务器监听http
err = http.ListenAndServe(appcfg["addr"], nil)
if err!=nil{
fmt.Println(err.Error())
log.Println(err.Error())
}
}
配置文件
3.1 配置文件解析
github.com/Unknwon/goconfig