「开源摘星计划」Go语言开发:Web框架之Beego框架简介

471 阅读3分钟

本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:github.com/weopenproje…

一、beego是什么?

beego是一个使用Go语言来开发WEB引用的GoWeb框架。
该框架起始于2012年,由一位台湾的程序大牛编写并进行公开,其目的就是为大家提供一个高效率的web应用开发框架。该框架采用模块封装,使用简单,容易学习。方便技术开发者快速学习并进行实际开发。对程序员来说,beego掌握起来非常简单,只需要关注业务逻辑实现即可,框架自动为项目需求提供不同的模块功能。

二、Beego框架的主要特性

1)简单化: RESTful支持,MVC模型;可以使用bee工具来提高开发效率,比如监控代码修改进行热编译,自动化测试代码,以及自动化打包部署等丰富的开发调试功能;

2)智能化: beego框架封装了路由模块,支持智能路由,智能监控,并可以监控内存消耗,CPU使用以及goroutine的运行状况,方便开发者对线上应用进行监控分析;

3)模块化: beego根据功能对代码进行节耦封装,形成了SessionCacheLog,、配置解析性能监控上下文操作、ORM等独立的模块,方便开发者进行使用;

4)高性能: beego采用Go原生的http请求,goroutine的并发效率应付大流量的Web应用和API应用。

大家需要记住beego的几个特性,一方面在面试过程中,如果有面试官问起大家关于goweb开发的相关知识的时候,有可能问beego框架有优势或者有什么特点,这个时候需要大家能够对beego框架这些特点做一个介绍;
另一方面,咱们在后面实际的学习和编码过程中,大家感受一下这些特性在实际项目中为我们带来的便利和高效。


三、beego安装

在对beego的特点做了简单了解之后,我们就真正开始来搭建beego的环境,开始进入实际的编码阶段。

首先我们进行beego源码的安装。说到beego的源码安装,这里需要我们使用一个命令,这个命令之前大家应该都接触过吧?我们使用go get命令来进行beego的安装。

【注意】: 在安装的时候,有一点大家要注意,beego框架要求Go 语言版本1.1+以上。或者在命令行中,执行go version查看一下自己的go语言版本,如下所示:

本地环境go语言版本就是1.10.4版本。

现在,我们来执行安装命令:

$ go get [http://github.com/astaxie/beego

 等待go将源代码下载安装完毕,我们就可以在我们自己设置的GOPATH下面的src目录下找到beego框架源码。

那么,我们首先来看一个最最简单的例子beego项目的例子,这个例子就一句话:

3.1 编写第一个beego示例项目

    package main  
    import "[http://github.com/astaxie/beego](https://link.zhihu.com/?target=http%3A//github.com/astaxie/beego)"  
    func main() {  
    [http://beego.Info](https://link.zhihu.com/?target=http%3A//beego.Info)("第一个beego案例")  
    beego.Run("localhost:8080")  
    }

3.2 编译代码

$ go build -o hello hello.go

3.3 执行

$ ./hello

3.4 浏览器访问服务

访问浏览器: http://localhost:8080
可以看到,在我们的浏览器当中出现了404,代表着页面没找到;这个很好理解,因为没有指定默认的页面,所以后台项目就不知道默认指向哪个页面路径,因此就提示404。但是,看后台打出了日志,这就说明,前端的请求确实到了后台main方法里面进行执行。


四、命令行工具Bee

现在,尝试来进行对代码进行修改,就简单的添加一行打印日志:[beego.Info])("代码修改")。这个时候,如果我们要想让代码生效,必须把原来正在执行的程序停止,然后重新执行编码和运行命令,我们来实际尝试一下。

经过我们的尝试,我们可以发现,确实第二次的重新启动的程序打印出了两条后台日志,这说明我们修改的代码生效了。

4.1 bee简介 

bee是一个开发工具,是协助Beego框架开发项目时进行创建项目,运行项目,热部署等相关的项目管理的工具。beego是源码,负责开发,bee是工具,负责构建和管理项目。介绍beego的特性的时候说过其中一点beego支持代码热部署吧。所谓热部署就是,当修改代码的时候,可以不用停止服务重新启动,内置的beego就能够实时感知源代码程序编码,并进行实时生效,这就是热部署,这样就大大方便了开发人员和维护人员要频繁的进行服务停止,服务重启的过程。现在,来看看bee都有哪些功能,如何进行操作?

4.2 bee安装 

如同beego一样,如果要使用bee,首先要进行安装,同样的道理,先使用go get命令安装bee工具。bee安装命令:

$ go get github.com/beego/bee

4.3 bee功能命令 

安装结束以后,进入到GOPATH对应的目录中,然后进入到bin目录下,可以看到有bee这个可执行文件,这就是安装的bee工具的可执行文件,在该目录中,我们在终端中执行以下bee命令,然后回车,会发现列出很多关于bee的用法,如下:

  • new命令:
$ bee new ProjectName

该命令表示新建一个全新的web项目,有一点需要注意:该命令必须在src目录下执行,才能生效,自动生成web项目的目录结构。如果在其他目录下面执行bee new命令,也同样会是在src目录下面生成对应新项目的目录结构,这是bee工具在构建项目的时候默认寻找创建的目录。

  • api命令:
$ bee api ProjectNames

该命令表示用来创建开发API应用。很多用户写前端的后台接口也是通过go来写,因此bee专门提供了一个写api接口应用的命令。通过目录结构可以看到,和Web项目相比,API项目少了static和views目录,多了一个test目录,test是用来进行写测试用例代码的。

run命令:

$ bee run 
命令用来运行项目,并且能够通过监控文件系统,实时进行代码的热部署更新。也就是,我们代码逻辑进行了修改,不用停止应用,在前端页面就能看到改变。
  • pack命令:
$ bee pack

pack命令用来发布应用的时候的大包操作,该命令会把项目大包成zip包,然后我们就可以在部署的时候直接把大包后的项目上传到服务器,然后解压进行部署。

  • version命令:
    查看当前bee,beego,go的版本。
$ bee version