GoFrame v2.5 版本发布,企业级 Golang 开发框架
大家好啊,GoFrame
框架今天发布了 v2.5.0
正式版本啦!
本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了 gf gen ctrl
命令,以规范化定义、开发 API 接口,增加控制器、SDK 的代码生成提高开发效率,以解决 Golang
工程开发中接口层面的规范和效率问题,详情请参考:接口规范 - gen ctrl。其他变更内容请参考以下 change log
。Enjoy!
Github ChangeLog
:https://github.com/gogf/gf/releases/tag/v2.5.0
完整代码变更: v2.4.0...v2.5.0,感谢本次所有的贡献开发者:
功能改进
gdb
- 改进
ORM SQL
日志记录,操作的字段按照数据表字段定义顺序进行操作。 - 改进
HOOK
方法实现,支持修改in
参数的Table
字段后修改执行的表名。 - 新增
AllAndCount/ScanAndCount
方法,用于实现便捷的分页查询场景。 - 新增
Model.WhereOrNot/WhereOrPrefixNot
条件方法。
- 改进
gi18n
- 改进支持中文(
Unicode
)作为转译的键名。
- 改进支持中文(
gclient
- 新增
Discovery
链式操作方法,用于设置本次请求的服务发现组件。
- 新增
ghttp
- 改进请求
Context
上下文处理,每次Context
的变更将会影响底层的http.Request
对象。以支持自定义HTTP Handler
的数据交互场景。 - 新增
Endpoints
配置项支持,用于自定义Server
的服务注册发现地址,而可以使用当前监听的地址。
- 改进请求
goai
- 改进参数校验识别,如果参数为必须参数,则在
OpenAPIv3
结果中进行标记。
- 改进参数校验识别,如果参数为必须参数,则在
gsel
- 修复
RoundRobin
实现中Endpoints
更新的锁机制问题。
- 修复
glog
- 新增
TimeFormat
配置,用于自定义日志输出的时间格式:日志组件 - 配置管理 - 改进
Rotation
实现,支持短运行程序的日志文件切分。
- 新增
gtag
- 新增
GetGlobalEnums
方法,用于获取全局注册的枚举类型。
- 新增
gutil
- 新增
DumpJson
方法,用于将任意类型变量按照JSON
格式化打印到终端,便于人工阅读。
- 新增
gvalid
- 新增
enums
校验规则,用于实现枚举类型的自动识别和校验:数据校验 - 校验规则
- 新增
社区组件
- 修复
contrib/registry/polaris
组件在多个服务端时的负载均衡问题。 - 改进
contrib/drivers/pgsql
在TableFields
返回的Index
字段序号统一从0
开始。 - 改进
contrib/nosql/redis
新增用户配置项支持。 - 改进
contrib/rpc/grpcx
组件,grpcx.Server
新增Endpoints
配置项支持,用于自定义服务注册发现的地址。 - 新增
contrib/sdk/httpclient
组件,用于本次版本新增的gf gen ctrl
命令生成的HTTP SDK
代码文件依赖库。 - 新增
contrib/trace/otlpgrpc
及contrib/trace/otlphttp
组件,用以实现基于OpenTelemetry
的链路跟踪统一对接组件。
开发工具
新增
gf gen ctrl
命令,用于编译api
定义目录,自动生成规范的controller
、HTTP SDK
代码:接口规范 - gen ctrl改进
gf gen dao
命令,新增TypeMapping
特性,开发者可自定义数据表字段类型与生成的Go
实体数据结构属性类型映射,并且可以方便引入第三方包类型(如decimal
包以支持高精度类型):数据规范 - gen dao改进
gf gen enums
命令,其中的Prefix
参数改为Prefixes
,以支持多个生成枚举类型的包前缀指定:枚举维护 - gen enums改进
gf gen service
命令:- 生成的
service
文件中,增加方法注释生成。 - 当生成的
service
文件中存在import
冲突时,自动生成import alias
。
- 生成的
改进命令行封装,暴露
gfcmd.Command
类型,便于开发者可以继承扩展自定义命令行功能。改进
gf docker
命令,将构建文件参数设置为非必须(考虑兼容),未来将会只用于Docker
构建,不再耦合二进制构建功能。如果有完整构建需求,建议未来结合gf build
功能共同使用。并更新项目工程模板的make image
命令,使用gf build+gf docker
命令实现。改进
gf init
命令,修复在部分场景下初始化项目覆盖已存在的.git/.gitignore
目录及文件问题或权限报错问题。改进
gf up
命令,修复在部分场景下的框架版本更新问题,以及在windows
系统下的下载安装问题。改进
gf version
命令,修复在部分场景下的框架版本识别问题。修复
gf gen pbentity
命令,生成的proto
文件实体数据结构的float32/float64/[]byte
类型修改为float/double/bytes
类型。改进开发工具,部分命令可以不用显示配置
importPrefix
参数,如:gf gen dao/service
视频教程
欢迎大家三连支持:
GoFrame电商实战教程
GoFrame v2.5 版本发布,企业级 Golang 开发框架的更多相关文章
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布
(新年巨献) RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布 历时数月,RDIFramework.NET V2.8版本发布了,感谢大家的支持. RDIFram ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.7 版本发布
历时数月,RDIFramework.NET V2.7 版本发布了,感谢大家的支持. RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开发系 ...
- go-wingui 2018 全新 v2.0 版本发布,包含重大更新!
go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布
RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布 全新体验.全新感觉.2015钜献! 继上个版本“RDIFramework.NET V2.8版本发布”5 ...
- 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github
4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增企业通(内部简易聊天工具)
RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本 新增企业通(内部简易聊天工具) RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用 ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增岗位管理-WinForm部分
RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本 新增岗位管理-WinForm部分 岗位(职位)管理模块主要是针对组织机构的岗位(职位)进行管理,包括:增加.修改. ...
- JEECG 3.7.2版本发布,企业级JAVA快速开发平台
JEECG 3.7.2版本发布 - 微云快速开发平台 JEECG是一款基于代码生成器的J2EE快速开发平台,开源界"小普元"超越传统商业企业级开发平台.引领新的开发模式(Onli ...
- JEECG 3.7.1 版本发布,企业级JAVA快速开发平台
JEECG 3.7.1 版本发布,企业级JAVA快速开发平台 ---------------------------------------- Version: Jeecg_3.7.1项 目: ...
- JEECG 3.7.3 新春版本发布,企业级JAVA快速开发平台
JEECG 3.7.3新春版本发布 - 微云快速开发平台 导读 ⊙精美Echart报表 ⊙二维码生成功能 ⊙Online接口改造采用JWT机制 ⊙智能菜单搜索 ⊙代码生成器模板优 ...
随机推荐
- 23.04.06_blog能被搜索到
博客优化内容 对于刚建立的博客来说,谷歌往往不能或者不会收录你的博客,为了使自己的博客可以被谷歌所检索到.我们需要主动向谷歌提供网址信息. 提交到百度搜索 访问百度搜索资源平台官网,注册或者登陆百度账 ...
- 彻底搞懂Redis持久化机制,轻松应对工作面试
1. 为什么要持久化 Redis是基于内存存储的数据库,如果遇到服务重启或者崩溃,内存中的数据将会被清空.所以为了确保数据安全性和可靠性,我们需要将内存中的数据持久化到磁盘上. 持久化不仅可以防止由于 ...
- Java中方法的定义及注意事项
一.方法 什么是方法: 方法(method)是程序中最小的执行单元 实际开发中,什么时候用到方法: 重复的代码.具有独立功能的代码可以抽取到方法中 实际开发中,方法有什么好处: 可以提高代码的复用性 ...
- Network Science:巴拉巴西网络科学学习笔记3——第二章随机网络
第二章:随机网络Erdős-Rényi Network (ER网络) 随机网络的两种定义形式: \(G(N,L)\)模型:N个节点,L条边随机链接. \(G(N,p)\)模型:N个节点,每个节点之间以 ...
- 【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求
问题描述 使用Azure API Management, 想对一些固定的IP地址进行访问次数的限制,如被限制的IP地址一分钟可以访问10次,而不被限制的IP地址则可以无限访问? ChatGPT 解答 ...
- C# Nuget版本号排序
Nuget包版本号和我们软件应用版本号一样,不过因为稳定性等的考虑,组件版本有更高的要求.预发布版本使用频率更高 版本号介绍,详见我朋友胡承老司机的博客:Nuget包的版本规范 (qq.com) 我这 ...
- .NET开源分布式锁DistributedLock
一.线程锁和分布式锁 线程锁通常在单个进程中使用,以防止多个线程同时访问共享资源. 在我们.NET中常见的线程锁有: 自旋锁:当线程尝试获取锁时,它会重复执行一些简单的指令,直到锁可用 互斥锁: Mu ...
- 关于OA系统的取数依据,以及如何逆向查询数据错误的思路。
1.正文 00.起因 源于财务在群里发的问题.我估计对于很多同事,又会像往常一样充满疑问,尤其是对于oa的取数会有疑问,然后业务能力极差的那部分,又会想到这是运营的问题(话说关运营什么事?),这是项目 ...
- 基于Gazebo搭建移动机器人,并结合SLAM系统完成定位和建图仿真
博客地址:https://www.cnblogs.com/zylyehuo/ gazebo小车模型创建及仿真详见之前博客 gazebo小车模型(附带仿真环境) - zylyehuo - 博客园 gaz ...
- Django4全栈进阶之路5 Model模型
在 Django 中,模型(Model)是用于定义数据结构的组件,其作用如下: 定义数据结构:模型用于定义数据库中的表格和表格中的字段(列),其中每个模型类对应一个表格,模型中的每个字段对应表格中的一 ...