• 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

  • 相关阅读:
    js获取当前页面url网址等信息
    jQuery 复选框全选/取消全选/反选
    js获取日期实例之昨天今天和明天、后天
    mysql不重启修改参数变量
    php 读取功能分割大文件实例详解
    php批量删除数据库下指定前缀的表
    PHP遍历目录返回统计目录大小实例
    PHP二维数组如何根据某个字段排序
    PHP 如何获取二维数组中某个key的集合(高性能查找)
    jQuery 隐藏与显示 input 默认值
  • 原文地址:https://www.cnblogs.com/ExMan/p/11446308.html
Copyright © 2020-2023  润新知