zoukankan      html  css  js  c++  java
  • 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来进行执行函数,性能上面会提升很多。
    ————————————————
    版权声明:本文为CSDN博主「ribavnu」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ribavnu/article/details/52490594

  • 相关阅读:
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
  • 原文地址:https://www.cnblogs.com/ExMan/p/11446308.html
Copyright © 2011-2022 走看看