1. 什么是Beego
1.1 Beego的特点
beego是一个快速开发Go应用的HTTP框架,他可以用来快速开发API、Web及后端服务等各种应用。他的优势在于:
- 简单化:遵从REST设计理念,通过标准的几个动作来操纵资源。此外还可以用bee工具辅助,提高开发效率。
- 智能化:beego框架封装了路由模块,支持智能路由,智能监控,并可以监控内存消耗,CPU使用以及goroutine的运行状况,方便开发者对线上应用进行监控分析。
- 模块化:beego根据功能对代码进行解耦封装,形成了Session,Cache,Log,配置解析,性能监控,上下文操作,ORM等独立的模块,方便开发者进行使用。
- 高性能:采用Go原生的http请求,goroutine的并发效率应付大流量的Web应用和API应用。
1.2 Beego的架构
Beego由八个独立模块构建,是一个高度解耦的应用,用户可以不使用beego的http逻辑使用里面的任意模块。
解耦,就是将程序积木化,各个积木块都是独立的,只要他们之间的接口(形状)匹配,就可以灵活地组合在一起。
一个软件系统由多个模块组成,在划分模块时,要把功能关系紧密的放到一个模块中(高内聚),功能关系远的放到其它模块中。模块之间的联系越少越好,接口越简单越好。
具体框架设计如下:
这些模块的组成运行逻辑如下:
1.3 Beego项目结构
一般的 beego 项目的目录如下所示,这是一个典型的MVC架构。
├── conf
│ └── app.conf
├── controllers
│ ├── admin
│ └── default.go
├── main.go
├── models
│ └── models.go
├── static
│ ├── css
│ ├── ico
│ ├── img
│ └── js
└── views
├── admin
└── index.tpl
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。
- Model(模型)表示应用程序核心
- View(视图)显示数据(数据库记录)
- Controller(控制器)处理输入(写入数据库记录
这种设计方法将业务逻辑、数据、界面显示分离的方法组织代码。
2. Beego的安装与运行
beego 的安装是典型的 Go 安装包的形式:
go get github.com/astaxie/beego
如果需要升级则是:
go get -u github.com/astaxie/beego
此外,为了快速开发,还需要安装bee工具:
go get github.com/beego/bee
以上内容安装好后,我们可在GOPATH/src/github.com
中找到源码,以及在GOPATH/bin
中找到bee.exe
。此外还需要将GOPATH/bin
添加到环境变量中。
如果输入bee version
能够出现标志,即说明配置成功。
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v1.10.0
之后在控制台输入bee new projectname
即可创建一个新的项目。运行后,在localhost:8080
中可以看到如下标志,即说明项目成功运行。