goframe框架详解
goframe框架是一种企业级开发框架,可以实现项目初始的构建,代码的生成,能够让开发者更加关注业务本身的逻辑
¶1.框架下载,以及项目初始构建
[goframe教程](工具安装-install | GoFrame官网 - 类似PHP-Laravel,Java-SpringBoot的Go语言开发框架)在教程网页中选择适合当前版本的goframe进行下载,然后运行,会提示选择安装目录,这时注意要选择已经添加到环境变量中的go语言的路径。
下载好之后就可以进行项目的初始构建了,首先创建一个文件夹,作为项目的文件夹,现在用到的有以下几种方法:
- 在当前的空文件夹下直接初始化构建项目:
gf init . - 在当前的空文件夹下创建一个新的项目名的文件夹,并在新的文件夹下初始化构建项目:
gf init project'sname
¶2.自动构建dao,do,entity
在hack中,将需要生成相关代码的数据库配置写入config文件中,然后执行gf gen dao命令,生成相关的代码文件
-
¶dao,do,entity的相关辨析
首先dao层分为internal和外层,internal包含自动生成的基础实现,外层是提供给外部调用的接口
内层interna通过下面的方法将gdb.model中的基础方法注册到ctx中
1 | func (dao *UserDao) Ctx(ctx context.Context) *gdb.Model { |
dao,do,entity使用时的相关关系,dao层负责具体的数据库操作,do层负责传递查询条件,entity层负责接收返回的数据
在实际开发中,DO和Entity在DAO层的典型应用场景包括:
1.查询操作 : 使用DO构建 Where 条件,使用Entity接收查询结果
1 | var message entity.ChatMessage |
2.插入操作 : 使用DO构建插入数据,执行插入操作
1 | result, err := dao.ChatMessage.Ctx(ctx).Data(do.ChatMessage{ |
3.更新操作 : 结合主键条件和DO数据进行更新
1 | result, err := dao.ChatMessage.Ctx(ctx). |
4.[关联查询](33 关联查询-一对多_哔哩哔哩_bilibili)
5.service需要实现的内容
6.goframe项目的构建顺序
- 先使用工具构建出dao
- 创建api相关内容
- 创建service层的相关内容
- 在logic层实现service层对应的接口方法
- 在controller层调用service层的接口
- router层注册绑定controller层的相关接口方法
¶3.api层,controller层以及router层(自己实现)之间的关系
使用goframe框架的整个接口创建注册流程图