File: mvc/singleton/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 {
//当使用单例控制器时,由开发人员负责安全访问
//所有客户端共享相同的控制器实例。
//注意任何控制器的方法
//是每个客户端,但结构的字段可以在多个客户端共享(如果是结构)
//没有任何依赖于iris.Context的动态struct字段依赖项
//并且所有字段的值都不为零,在这种情况下我们使用uint64,它不是零(即使我们没有设置它
//手动易于理解的原因)因为它的值为&{0}。
//以上所有都声明了一个Singleton,请注意,您不必编写一行代码来执行此操作,Iris足够聪明。
//
// see `Get`.
visits uint64
}
func (c *globalVisitorsController) Get() string {
count := atomic.AddUint64(&c.visits, 1)
return fmt.Sprintf("Total visitors: %d", count)
}
~~~
- api文档
- yaag
- 认证
- 认证基本
- oauth2
- 缓存
- 客户端
- 简单的
- 配置
- 配置文件
- tml文件
- yaml文件
- 功能
- 处理程序
- Negroni Like
- http
- Real Usecase Raven
- cookies
- Basic
- 安全cookie
- 实验程序
- casbin
- 云监视
- cors
- csrf
- jwt
- 新文学
- Casbin
- 文件服务器
- Hero
- http监听
- http请求
- HTTP Responsewriter
- Miscellaneous
- MVC
- mvc概观
- 中间件
- Hello World
- 登陆
- Session 控制器
- Singleton
- MVC基本
- ORM
- xorm
- 概况
- 路由
- 概观
- 自定义上下文
- 自定义包装
- 动态路径
- 相反
- HTTP错误
- 路由状态
- 路由基本
- Sessions
- 构建
- 子域
- 重定向
- 万维网
- Single
- 通配符
- 多域名
- 测试
- 教程
- 视图
- Template Html 0
- Template Html 1
- Template Html 2
- Template Html 3
- Template Html 4
- Webassembly
- Websocket
