必须同时满足dev模式、控制器被include注册、执行bee run三个条件,@router注释才生效:需将runmode设为dev,调用beego.include注册控制器,再运行bee run触发源码分析并生成commentsrouter.go路由文件。

要在Beego项目中让控制器方法上的// @router注释真正生效,必须满足开发模式、源码分析触发、包初始化三个硬性条件,缺一不可。
确认项目处于dev运行模式
打开conf/app.conf文件,检查runmode配置项是否为dev。如果不是,请修改为:runmode = dev
Beego只在dev模式下解析控制器中的@router注释并生成路由文件,【生产环境(prod)或test模式下完全不执行该分析】。
确保控制器被Include注册
打开routers/router.go文件,在init()函数中添加包含控制器的语句,例如:beego.Include(&controllers.UserController{})
这一步是关键前提——没有Include,Beego不会扫描该控制器下的任何方法,@router注释将被彻底忽略。
执行bee run触发自动分析与生成
在项目根目录下运行:bee run
首次执行时,Beego会自动完成以下动作:
① 扫描所有被Include的控制器源码;
② 提取每处// @router注释;
③ 按规范生成routers/commentsRouter_controllers.go(或commentsRouter.go,版本略有差异);
④ 将生成的路由文件自动导入到路由系统中。
生成后,你可以在routers/目录下看到该文件,里面是完整的beego.Router()调用代码。如果没出现,说明前两步有遗漏。
验证路由是否生效
启动服务后,直接访问你在@router中定义的路径,比如:// @router /user/:id [get] → 访问 http://localhost:8080/user/123
若返回404,先检查控制台日志中是否有Parse comments router或commentsRouter generated字样;没有则代表未触发生成流程。











