Gorm
Orm (Object Relational Mapping) : 对象关系映射 。 Orm框架 提供 不需要关注 实体对象 与 数据库之间的操作关系
Docker Compose
docker compose 启动 mysql8
基本语法 :
- services : 服务列表
- image : 镜像
- command : 启动命令 (启动命令行参数)
- volumes : 挂载文件
- ports : 端口映射关系
|
|
基础命令 :
dokcer compose up : 初始化 dokcer-compose 并且懂
docker compose down : 删除 docker-compose 里面创建的容器
项目结构
Service : 代表 领域服务 完整的业务的处理过程
Repository : 按照 DDD 的说法 是代表领域对象的存储 ,可以认为是存储数据的抽象
Dao : 代表数据库操作
domain : 代表领域对象
|
|
这里简单提一下 :
我们公司项目的调用逻辑是 :
每一层都有自己相同的 user , 从这里看
htv2-db操作代表daoexgv2层代表domain(和 db 弱关联,但是算是底层数据)cefiacc即是Repositoryec代表service封装给其他组进行调用
|
|
一些疑问
-
为什么有了
repository之后 还要有dao?repository是一个整体抽象,本质上可以考虑用ES或者是Mysql或者是mongoDB并不代表数据库

HTTP
无状态协议 HTTP
HTTP 是无状态协议,对于连续发送的两次请求, HTTP 并不知道两次都是同一个人发的
只能引入 cookie 和 session 进行记录
Cookie
浏览器存储一些数据到本地,这些数据就是 Cookie
因为 Cokkie 是放在浏览器本地的,所以很不安全
一些关键配置 :
-
Domain:cookie可以用在什么域名下 -
Path:cookie可以用在什么路径下 -
Max-age和Expires: 过期时间 -
Secure: 只用于 HTTPS 协议
|
|
Session
由于 Cookie 本身不安全的特性,所以大部分 我们不把一些关键信息放在 Cookie
关键数据我们希望放在后端,这个存储的东西就是 session
|
|
个人理解 :
session也离不开本地化存储,大部分都是放在cookie中 如果禁用了cookie也会考虑放在header或者是query中- 使用
session无非是把敏感信息的相关校验放在了后端
面试
- 什么是 cookie 什么是 session ?
- cookie 和 Session 比起来有什么缺点
- Session ID 可以放在哪里 ?
- 用户密码加密算法选取有什么注意事项
- 怎么做登陆校验
后续
增强扩展 GORM 功能
- 为 GORM 提供可观测性的插件实现
- 为 GORM 提供读写分离插件
- 为 GORM 提供 BeforeFind 功能
- 为 GORM 提供辅助方法