单一控制器

未匹配的标注

单一控制器

package main

import (
    "fmt"
    "sync/atomic"

    "github.com/kataras/iris"
    "github.com/kataras/iris/mvc"
)

func main() {
    app := iris.New()
    mvc.New(app.Party("/")).Handle(&globalVisitorsController{visits: 0})

    // http://localhost:8080
    app.Run(iris.Addr(":8080"))
}

type globalVisitorsController struct {
    //当访问单一控制器的时候,由开发人员负责并发的安全访问, 
    // 因为所有的客户端共享一个相同的控制器实例。
    // 请注意任何控制器的方法都是每个客户端的,
    // 但是如果此结构没有任何动态结构字段依赖于 Iris ,该结构的字段可以在多个客户端共享。
    // Context 和 ALL 字段的值不为0,在这种情况下我们使用 unit64 ,
    // 它的值不是0(即使我们没有手动设置它),而是 &{0} 。
    // 以上所有都声明了只有一个 Singleton ,注意你不必去写代码去实现它,Iris 已经给你做好了。
    // 请看 `Get` 方法。
    visits uint64
}

func (c *globalVisitorsController) Get() string {
    count := atomic.AddUint64(&c.visits, 1)
    return fmt.Sprintf("Total visitors: %d", count)
}

更多的文件结构指南在 github.com/kataras/iris/tree/maste... 中可以找到。

请遵循以下示例

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/iris-go/10/mvc_...

译文地址:https://learnku.com/docs/iris-go/10/mvc_...

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~