dotweb框架之旅 [二] - 經常使用對象-App(dotweb)

dotweb屬於一個Web框架,但願經過框架行爲,幫助開發人員快速構建Web應用,提高開發效率,減小沒必要要的代碼臃腫。git

框架地址:https://github.com/devfeel/dotwebgithub

dotweb包含如下幾個經常使用對象:web

  • App(dotweb) App容器,爲Web請求處理提供必要的容器類功能。
  • HttpServer 用於真正處理Web請求的服務模塊。
  • HttpContext 用於提供單次請求處理中請求信息與響應信息的快捷處理與惟一入口。
  • Response 用於從服務器向用戶發送輸出的結果。
  • Request 用於從用戶那裏取得信息。
  • Session 用於存儲關於某個鏈接會話的信息,或者修改相關的設置。目前支持存儲本機內存與Redis分佈式。

本章開始,將對這系列對象作經常使用場景的介紹。緩存

App對象,在dotweb中定義爲DotWeb,在框架中,主要承擔爲Web請求處理提供必要的容器類功能,好比啓動Web監聽、配置初始化、設置工做模式、設置日誌、設置緩存等,同時也承擔一系列快捷功能入口。服務器

主要屬性:app

屬性 描述 默認值
HttpServer
App承載的WebServer對象
NewHttpServer()
Config
全局配置信息,映射dotweb.conf
config.NewConfig()
Middlewares
App級別的中間件集合
make([]Middleware, 0)
ExceptionHandler
自定義處理異常方法
DefaultHTTPErrorHandler()
NotFoundHandler
自定義404請求處理方法
DefaultNotFoundHandler()
MethodNotAllowedHandler
自定義405請求處理方法
DefaultMethodNotAllowedHandler()
Items
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.Items.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-examplespa

歡迎各位加入咱們的go語言QQ羣:193409346插件

相關文章
相關標籤/搜索