IRIS MVC 单例控制器
目录结构
主目录
singleton
—— main.go
代码示例
main.go
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 {
//当使用单例控制器时,由开发人员负责访问安全,所有客户端共享相同的控制器实例。
//注意任何控制器的方法,是每个客户端,但结构的字段可以在多个客户端共享(如果是结构)
//没有任何依赖于的动态struct字段依赖项
//并且所有字段的值都不为零,在这种情况下我们使用uint64,它不是零(即使我们没有设置它手动易于理解的原因)因为它的值为&{0}
//以上所有都声明了一个Singleton,请注意,您不必编写一行代码来执行此操作,Iris足够聪明。
//见`Get`
visits uint64
}
func (c *globalVisitorsController) Get() string {
count := atomic.AddUint64(&c.visits, 1)
return fmt.Sprintf("Total visitors: %d", count)
}
当前内容版权归 studyiris.com 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 studyiris.com .