經過運行 bee new quickstart 來建立新的項目,其結構以下:css
quickstart |-- conf | `-- app.conf |-- controllers | `-- default.go |-- main.go |-- models |-- routers | `-- router.go |-- static | |-- css | |-- img | `-- js |-- tests | `-- default_test.go `-- views `-- index.tpl
而後經過bee run來運行項目。git
在main函數裏,咱們看到:github
import ( _ "mynewbeego/routers" "github.com/astaxie/beego" )
有2個import,而咱們知道,go的執行順序是:app
咱們先去看看,router這個,是作了啥函數
routers目錄下,只有一個router.go文件,裏面只有一個init函數(這個會被執行)ui
func init() { beego.Router("/", &controllers.MainController{}) }
可是,咱們看其的import:router
import ( "mynewbeego/controllers" "github.com/astaxie/beego" )
一層層,繼續去看:controllers:blog
其下面只有一個default.go 文件:繼承
type MainController struct { beego.Controller } func (c *MainController) Get() { c.Data["Website"] = "beego.me" c.Data["Email"] = "astaxie@gmail.com" c.TplName = "index.tpl" }
這裏是匿名組合,也便是傳統的繼承。it