golang学习笔记5 beego项目路由设置

前面我们已经创建了 beego 项目,而且我们也看到它已经运行起来了,那么是如何运行起来的呢?让我们从入口文件先分析起来吧:

package main

import (
_ "quickstart/routers"
"github.com/astaxie/beego"
) func main() {
beego.Run()
}

  我们看到 main 函数是入口函数,但是我们知道 Go 的执行过程是如下图所示的方式:

_ "quickstart/routers"
package routers

import (
"quickstart/controllers"
"github.com/astaxie/beego"
) func init() {
beego.Router("/", &controllers.MainController{})
}

  

beego.Router/
beego.Router("/user", &controllers.UserController{})
/userUserController
beego.Runbeego.Run

解析配置文件

app.conf

执行用户的 hookfunc

AddAPPStartHook

是否开启 session

会根据上面配置文件的分析之后判断是否开启 session,如果开启的话就初始化全局的 session。

是否编译模板

beego 会在启动的时候根据配置把 views 目录下的所有模板进行预编译,然后存在 map 里面,这样可以有效的提高模板运行的效率,无需进行多次编译。

是否开启文档功能

根据 EnableDocs 配置判断是否开启内置的文档路由功能

是否启动管理模块

beego 目前做了一个很酷的模块,应用内监控模块,会在 8088 端口做一个内部监听,我们可以通过这个端口查询到 QPS、CPU、内存、GC、goroutine、thread 等统计信息。

监听服务端口

ListenAndServe

一旦 run 起来之后,我们的服务就监听在两个端口了,一个服务端口 8080 作为对外服务,另一个 8088 端口实行对内监控。

通过这个代码的分析我们了解了 beego 运行起来的过程,以及内部的一些机制。接下来让我们去剥离 Controller 如何来处理逻辑的。

---------------------------

 QQ群:golang beego技术交流群(316397059)

golang学习笔记6 beego项目路由设置的相关教程结束。