Revel 概念


本文整理自网络,侵删。

Revel 从Rails 和 Play! 中吸收了许多成熟的设计思想, 许多相同的思想被用到了框架的设计和接口中。

Revel 通过简单的约定来支持 MVC 设计模式,轻量、开发效率高。

MVC

  • 模型 描述基本的数据对象,特定的查询和更新逻辑。
  • 视图 一些模板,用于将数据呈现给用户。
  • 控制器 执行用户的请求,准备用户所需的数据,并指定模板进行渲染。

一些不错的MVC结构概述,像 Play! 框架 与Revel框架完全匹配。

请求的生命周期

下面是一个请求处理的基本流程:

概要:

  • Revel 暴漏一个单独的 http.Handler, 负责实例化控制器 (请求的上下文),并沿着过滤器链传递请求。
  • Filters 链接到一个请求处理链,由水平相关的功能组成,比如请求记录,cookie策略,授权等。大部分内建功能都是由过滤器实现的。
  • Actions 是处理用户输入和产生请求结果的的函数。

HTTP Handler

Revel 构建自顶级 Go HTTP server, 他为每一个到来的请求创建一个 go-routine (轻量线程),用于处理并发。

Revel什么也不做,只是把请求交给过滤器链处理,完成之后,将结果写到响应中。

默认情况下, Revel 处理程序注册到 "/" 接受所有的请求连接。然而, 应用程序可以自由的重写此行为 – 例如, 可以使用现有的 http.Handlers 而不是Revel来重新实现此功能。具体请参考 FAQ。

过滤器

过滤器 实现了Revel的大部分请求处理功能,过滤器有一个简单的易于嵌套的接口。

“过滤器链” 是一个函数数组, 每一个都会去执行下一个,直到最后一个过滤器执行了控制器方法。例如, 过滤器链中的第一个过滤器是 RouterFilter, 它决定哪个操作接受请求并保存到控制器。

总之, 过滤器和过滤器链就像机架一样。

控制器和方法

每一个 HTTP 请求,执行一个 action, 处理请求并写入响应。 相关的 actions 被分组到 controllers中. Controller 类型包含相关字段和方法,作为每个请求的上下文。

阅读剩余部分

相关阅读 >>

Revel 参数绑定

Revel 计划任务

Revel 项目结构

Revel 日志类型

Revel 过滤器

Revel session flash

Revel results

Revel 命令行工具

Revel 拦截器

Revel 常见问题

更多相关阅读请进入《Revel》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...