• Gin程序热加载


    Gin程序热加载

    1 项目热加载

    我们在Flask或者Django框架下开发都是支持实时加载的,当我们对代码进行修改时,程序能够自动重新加载并执行,这在我们开发中是非常便利的,可以快速进行代码测试,省去了每次手动重新编译。

    所谓热加载就是当我们对代码进行修改时,程序能够自动重新加载并执行,这在我们开发中是非常便利的,可以快速进行代码测试,省去了每次手动重新编译

    beego 中我们可以使用官方给我们提供的 bee 工具来热加载项目,但是 gin 中并没有官方提供的热加载工具,这个时候我们要实现热加载就可以借助第三方的工具

    1.1 工具一:fresh

    Fresh是一个命令行工具,每次保存Go或模版文件时,该工具都会生成或重新启动Web应用程序。Fresh将监视文件事件,并且每次创建/修改/删除文件时,Fresh都会生成并重新启动应用程序。如果go build返回错误,它会将记录在tmp文件夹中

    // 0 地址 :https://github.com/gravityblast/fresh
    
    // 1 安装
    go get github.com/pilu/fresh
    
    // 2 切换到项目路径
    cd /path/to/myapp
    
    // 3 执行fresh,不需要直接启动项目了,使用fresh启动gin项目即可
    fresh  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    1.2 工具二:codegangsta/gin

    gin是一个简单的命令行实用程序,用于实时重新加载Go web应用程序。只需在你的应用程序目录中运行gin,你的web应用程序就会以gin作为代理。当gin检测到更改时,它会自动重新编译代码。你的应用程序将在下次收到HTTP请求时重新启动

    // 0 地址 :https://github.com/codegangsta/gin
    
    // 1 安装
    go get github.com/codegangsta/gin
    
    // 2 查看帮助
    gin help
    
    // 3 使用
    gin run main.go  
    // 4 访问一下http://127.0.0.1:3000,再访问http://127.0.0.1:8000
    
    // 5 或者使用以下命令启动,访问3000会被代理到8000
    // --bin value, -b value    name of generated binary file (default: "gin-bin")
    gin -p 3000 -a 8000 -b gin-bin --all run
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    1.3 工具三:bee

    bee是beego框架的热编译工具,同样可以对GIN框架进行热编译,使用起来很方便,功能也有很多,这里就不展开了,喜欢的可以去看文档,解锁更多玩法。

    // 0 地址 :https://github.com/beego/bee
    
    // 1 安装
    go get github.com/beego/bee
    
    // 2 使用
    bee run
    
    // 3 访问:http://127.0.0.1:8000/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.4 补充

    除上述3种外,还有更多的热加载工具,但是随便哪一种都够用了,不过个人更喜欢用fresh和bee。使用起来十分简单。

    另外,使用热加载之前,因为go 下载下来的工具不是放在go.exe(windows)文件所在目录(bin\go.exe),而是同级的bin文件夹下(bin\bin\),因此需要添加下环境变量才能使用。

  • 相关阅读:
    12. Spring源码篇之创建Bean逻辑doCreateBean
    电脑重装系统c盘如何备份资料
    Docker FreeIPA
    【云原生】Docker网络
    vue 孙子组件获取祖先组件数据
    数据结构单链表
    canvas之时钟
    工作流自动化,低代码是解决关键
    Java:Java还很重要吗?
    Docker在人工智能领域的应用与实战
  • 原文地址:https://blog.csdn.net/qq_55752792/article/details/126322575