dotweb框架之旅 [二] - 常用对象-App(dotweb)
dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿。
框架地址:https://github.com/devfeel/dotweb
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() |
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, )
//全局容器
app.Items.Set("app", "dotweb")
// 开始服务
port :=
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框架之旅 [三] - 常用对象-HttpServer
dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿. dotweb包含以下几个常用对象: App(dotweb) App容器,为Web ...
- dotweb框架之旅 [四] - 常用对象-HttpContext
dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿. dotweb包含以下几个常用对象: App(dotweb) App容器,为Web ...
- dotweb框架之旅 [一] - HelloWorld
一直想着,要系统性的写一些dotweb使用的文章,之前拖延了不少时间,今天,下定决定,算是正式的开始,也请大家一起监督. dotweb,是一款追求简约大方的go web框架,正如其github项目主页 ...
- Entity Framework 实体框架的形成之旅--利用Unity对象依赖注入优化实体框架(2)
在本系列的第一篇随笔<Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)>中介绍了Entity Framework 实体框架的一些基础知识,以及构建 ...
- scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250
scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...
- Farseer.net轻量级开源框架 中级篇:常用的扩展方法
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 中级篇: BasePage.BaseController.BaseHandler.BaseM ...
- Shiro 安全框架详解二(概念+权限案例实现)
Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...
- JavaScript常用对象的方法和属性
---恢复内容开始--- 本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...
- Yii PHP 框架分析(二)
Yii PHP 框架分析(二)作者:wdy http://hi.baidu.com/delphiss/blog/item/54597af595085ad3f3d38552.html Yii是基于组件( ...
随机推荐
- Day-11: IO编程
由于CUP的运行速度远高于其他外设,IO操作有两种方式: 同步IO:CUP登着,程序暂停直到执行完后续代码 异步IO:CUP不等待,去做其他的事情,磁盘做完该做的事情后,告诉CUP,CUP再进行后续代 ...
- C# WinForm 跨线程访问控件
问题出现: 在WinForm 处理多线程访问主线程的控件时候,就会出现如图所示的错误对话框: 解决方案: 方案一:去掉线程访问主线程UI控件的安全检查,使用: Control.CheckFor ...
- main方法快速编辑日历
public static void main(String[] args) { Scanner input=new Scanner (System.in); System.out.println(& ...
- [转载]Word直接发布新浪博客(以Word 2013为例)
原文地址:Word直接发布新浪博客(以Word 2013为例)作者:paulke2011 注意:这篇博客直接由Word 2013发出!这虽然也算是一个教程,但更多的是一个试验品. 老早就知道Word有 ...
- 【2017集美大学1412软工实践_助教博客】团队作业7——Alpha冲刺之事后诸葛亮
题目 团队作业7: http://www.cnblogs.com/happyzm/p/6827853.html 团队成绩 评分项目 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 全组 ...
- 结对编程1-四则运算GUI实现(58、59)
题目描述 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一 ...
- 201521123113 《Java程序设计》第4周学习总结
1.本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 设计类的技巧:类名和方法名要能够体现他们的职责,类名首字母要大写 如何识别一个类 方法.属性的 ...
- 201521123097《Java程序设计》第四周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 在本周的学习中,我知道了在类的定义里,还学习到了抽象类以及抽象方法的使用格式. 2. 书面作 ...
- 201521123104 《JAVA程序设计》第二周学习总结
1. 本周学习总结 认识了JAVA编程中一些类型与变量,了解了一些基本运算符的使用 变量在命名时,不可以使用数字或一些特殊字符作为开头 不可以声明局部变量后未指定任何值给它之前就使用变量 在程序中写下 ...
- 201521123088 《Java程序设计》第14周学习总结
1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名)在自己建立的数据库上执行常见SQL语句(截图) 2. ...