dotweb框架之旅 [二] - 常用对象-App(dotweb)

Posted 沉默之都

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dotweb框架之旅 [二] - 常用对象-App(dotweb)相关的知识,希望对你有一定的参考价值。

dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿。

dotweb包含以下几个常用对象:

  • App(dotweb) App容器,为Web请求处理提供必要的容器类功能。
  • HttpServer 用于真正处理Web请求的服务模块。
  • HttpContext 用于提供单次请求处理中请求信息与响应信息的快捷处理与唯一入口。
  • Response 用于从服务器向用户发送输出的结果。
  • Request 用于从用户那里取得信息。
  • Session 用于存储关于某个连接会话的信息,或者修改相关的设置。目前支持存储本机内存与Redis分布式。

本章开始,将对这系列对象做常用场景的介绍。

App对象,在dotweb中定义为DotWeb,在框架中,主要承担为Web请求处理提供必要的容器类功能,比如启动Web监听、配置初始化、设置工作模式、设置日志、设置缓存等,同时也承担一系列快捷功能入口。

主要属性:

属性 描述 默认值
HttpServer
App承载的WebServer对象
NewHttpServer()
Config
全局配置信息,映射dotweb.conf
config.NewConfig()
Middlewares
App级别的中间件集合
make([]Middleware, 0)
ExceptionHandler
自定义处理异常方法
DefaultHTTPErrorHandler()
NotFoundHandler
自定义404请求处理方法
DefaultNotFoundHandler()
MethodNotAllowedHandler
自定义405请求处理方法
DefaultMethodNotAllowedHandler()
AppContext
App级别全局内存kv存储
NewItemContext()
OfflineServer
维护WebServer
NewOfflineServer()

 

 

 

 

 

 

 

 

 

 

 

 

 

主要方法

方法 描述
Start()
 根据配置启动Web端口监听,若发生错误,返回具体error对象
ListenAndServe(addr string)
 指定host:port,根据配置启动Web端口监听
Use(m ...Middleware)
 注册中间件,所有请求共享
SetDevelopmentMode()\SetProductionMode()
 设置开发模式\生产模式
Cache()
 提供全局内存缓存入口
UseRequestLog()
 启用基础请求日志中间件
SetPProfConfig()
 设置pprof监听端口信息
SetLogger(log logger.AppLog)
 设置自定义日志插件

 

 

 

 

 

 

 

 

 

 

 

 

 

常规使用代码:

func main() {
    //初始化App
    app := dotweb.New()

    //设置dotserver日志目录
    //如果不设置,默认不启用,且默认为当前目录
    app.SetEnabledLog(true)

    //开启development模式
    app.SetDevelopmentMode()

    //设置路由
    InitRoute(app.HttpServer)

    //自定义404输出
    app.SetNotFoundHandle(func(ctx dotweb.Context) {
        ctx.Response().Write(http.StatusNotFound, []byte("is‘t app‘s not found!"))
    })

    //启动 监控服务
    app.SetPProfConfig(true, 8081)

    //全局容器
    app.AppContext.Set("app", "dotweb")

    // 开始服务
    port := 8080
    fmt.Println("dotweb.StartServer => " + strconv.Itoa(port))
    err := app.StartServer(port)
    fmt.Println("dotweb.StartServer error => ", err)
}

更多代码可参考 https://github.com/devfeel/dotweb-example

欢迎各位加入我们的go语言QQ群:193409346

以上是关于dotweb框架之旅 [二] - 常用对象-App(dotweb)的主要内容,如果未能解决你的问题,请参考以下文章

dotweb——go语言的一个微型web框架路由注册

滴滴Booster移动APP质量优化框架 学习之旅 二

微信小程序之旅一(小试牛刀)

设计模式学习之旅

Python学习之旅

打怪升级之小白的大数据之旅(五十)<MapReduce框架原理二:shuffle>