经过运行 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