beego session源码分析

beego session源码分析,第1张

Store接口定义一系列session存储销毁的规范

Provider是session存储的提供者,定义session的存储方式

实现session和provider中的方法,并且注册..

redis sessionStore的持有value map,保存现有session,session *** 作都会暂存至values map键值对。同时HttpServer每次请求后都会调用SessionRelease(rw)将数据保存至redis

session.go中定义了 var provides = make(map[string]Provider) 持有注册的Provider

关注initBeforeHTTPRun函数

2、注册系列hooks(hooks.go)

获取session配置项,调用NewManager,得到gobelSessions。gobelSessions即为reids session manager

5、从持有注册provider的map中根据provider name得到Manger

6、httpServer handler中初始化session

初始化,从cookie中获取sid,如果存在则直接读取,如果不存在则生成sessionId,并放入cookie,加入response

官方文档

https://beego.me/docs/intro/

官方Samples

中国人自己开发的Go应用框架,支持八大低耦合独立的模块,同时支持bee小工具,快速开发Go的应用程序,另外还自带了监控模块,类似于SpringBoot的 Actutar的功能

优点是大而全,缺点是过于臃肿了,在某些模块,比如mvc模块、orm模块,不如一些小而专的框架(Gin)

bee工具生成的beego项目,会在conf路径下有app.conf文件,直接配置,然后就可以使用了。

包括了很多核心功能的配置:静态资源路径、端口、session、日志配置、Web配置、App配置等等

特性:

beego会自动进行源码分析,但是只会在dev模式下生成,生成的路由放在/routers/commentsRouter_controllers.go

https://beego.me/docs/module/logs.md

依赖类库"github.com/astaxie/beego/logs"

https://beego.me/docs/install/bee.md

常用命令

beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架。

GoLand 是一个用于开发go应用的IDE,和python常用的IDE pyCharm一样,都是由JetBrains公司开发的。

最近看了下使用go开发web应用方面的东西,发现beego( https://github.com/astaxie/beego ) 这个框架挺不错的,中文的文档写的也很好 ( https://beego.me/docs/intro/ )。 我按照文档把demo run起来了,然后就是想着怎么debug了,下面简单介绍下如何使用GoLand这个IDE来debug beego应用。

这里假设你已经安装好了go和beego环境。可以参考 https://beego.me/docs/install/ 进行安装。

参考上面发的文档连接准备一个beego项目。

菜单栏依次选择:"File" ->"Open",选择beego路径,然后“确定”,我的demo路径为“D:\dyp\project\go\ceshi\src\quickstart”,如下图所示

菜单依次选择“Run”->“Edit configurations”如下图所示:

在d出的对话框中按照如下图所示配置:

点击“debug”按钮,如下图所示:

设置断点就可以开始调试啦。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11191335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存