iris 框架需借助外部工具 air 实现热重载:先执行 go install github.com/air-verse/air@latest 安装,再确保 main.go 在项目根目录,用 app.listen() 启动服务,最后运行 air 即可自动监听代码变更并重启。

要在 Iris 框架中实现代码修改后自动重启服务的热重载调试体验,必须依赖 Go 生态中独立于框架的外部工具,因为 Iris 本身不内置热重载能力。
安装 air 热重载工具
执行命令安装 air:go install github.com/air-verse/air@latest
这一步要求本地已配置 Go 环境且 GOPATH/bin 在系统 PATH 中;若未生效,需手动将 $GOPATH/bin 加入 PATH。安装完成后在任意目录运行 air --version 验证是否成功。
初始化 Iris 项目结构
创建空目录并进入,例如 mkdir iris-dev && cd iris-dev
初始化 Go 模块:go mod init iris-dev
【必须确保 main.go 文件位于项目根目录】——air 默认只监听当前目录及子目录下的 .go 文件,若 main 入口不在根目录,air 启动时会报错“no Go files found”。
编写可热重载的 Iris 启动代码
在根目录新建 main.go,内容需包含标准 HTTP 服务启动逻辑与信号处理:
package main
import "github.com/kataras/iris/v12"
func main() {
app := iris.New()
app.Get("/", func(ctx iris.Context) { ctx.WriteString("Hello Iris! (PID: " + string(rune(app.PID())) + ")") })
app.Listen(":8080")
}
注意:不要使用 app.Run() 或 app.Serve() 等阻塞式调用变体,air 要求主函数能正常退出以便接管进程生命周期;Iris 的 app.Listen() 是非阻塞的,符合要求。
启动热重载调试
方法一:直接运行 air
在项目根目录执行 air 命令,air 会自动检测 go.mod、查找 main.go、构建并运行程序,控制台输出类似 “running…” 和服务地址。
方法二:指定配置文件(适用于复杂项目)
执行 touch .air.toml 创建配置文件,写入:
[build]
cmd = "go build -o ./app ."
bin = "./app"
然后运行 air -c .air.toml。此方式可绕过 air 默认构建逻辑,适配自定义构建流程。
修改 main.go 任意一行保存,air 会在 1 秒内触发重建→终止旧进程→启动新进程,浏览器刷新即可看到 PID 变化,确认热重载生效。











