beego 注解路由

场景描述:使用注解路由,不起作用。

额外描述:

路由的添加都写在 main函数中了,同时未设置

beego.BConfig.RunMode ="dev"
也未引入 :
routers包的初始化操作

其官网描述:

http://beego.me/docs/mvc/controller/router.md


应用中的大多数路由都会定义在 routers/router.go 文件中


从beego1.3版本开始支持了注解路由,用户无需在router中注册路由,只需要Include相应地controller,

然后在controller的method方法上面写上router注释(// @router)就可以了,详细的使用请看下面的例子:


// CMS API
type CMSController struct {
    beego.Controller
}


func (c *CMSController) URLMapping() {
    c.Mapping("StaticBlock", c.StaticBlock)
    c.Mapping("AllBlock", c.AllBlock)
}




// @router /staticblock/:key [get]
func (this *CMSController) StaticBlock() {


}


// @router /all/:key [get]
func (this *CMSController) AllBlock() {
this.Ctx.WriteString("CMSController/all")
}






可以在router.go中通过如下方式注册路由:

beego.Include(&CMSController{})


beego自动会进行源码分析,注意只会在dev模式下进行生成,生成的路由放在“/routers/commentsRouter.go”文件中。



这样上面的路由就支持了如下的路由:


GET /staticblock/:key
GET /all/:key
其实效果和自己通过Router函数注册是一样的:


beego.Router("/staticblock/:key", &CMSController{}, "get:StaticBlock")
beego.Router("/all/:key", &CMSController{}, "get:AllBlock")
同时大家注意到新版本里面增加了URLMapping这个函数,这是新增加的函数,

用户如果没有进行注册,那么就会通过反射来执行对应的函数,如果注册了就会通过interface来进行执行函数,性能上面会提升很多。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值