GoFrame v2.8.0 发布:更高效、更强大,兼容性与性能全面提升
我们很高兴宣布GoFrame
迎来了v2.8.0
版本的发布! 本次更新带来了重要的改进和新特性,使GoFrame
在开发效率、执行性能、稳定性和扩展性方面取得了显著提升。
版本亮点
-
兼容性更新
GoFrame v2.8.0
要求最低Golang
版本为1.20
,提供更高效的性能和稳定性。container/gring
组件已被废弃,同时contrib/trace/jaeger
组件从源码仓库移除,简化了依赖管理。
-
组件改进
database/gdb
模块现在支持created_at/updated_at/deleted_at
整型时间戳字段、unix socket
连接、time/year
字段类型,并增加了Model.Exist
方法,显著提升了数据库操作的灵活性和效率。util/gconv
组件使用类型缓存提升转换性能,针对复杂数据类型的转换性能提升约300%
。net/ghttp
和net/gudp
网络服务组件优化了参数配置和请求处理逻辑,为用户提供更简洁的开发体验。
-
开发工具升级
gf init
命令支持生成单仓多应用项目结构。gf gen ctrl
、gf gen dao
和gf run
等命令的优化,进一步增强了代码生成的灵活性与执行效率,简化了项目搭建流程。
-
社区组件支持
- 为
contrib/drivers/mssql
和contrib/registry/etcd
等多个社区驱动增加了对最新功能的支持,提升了与外部服务集成的便捷性。
- 为
未来展望
GoFrame
团队感谢每一位社区用户的支持。 我们将继续倾听社区反馈,为用户提供更丰富的功能和更高效的开发支持。
特别致谢
💖💖💖 感谢所有参与本次版本的贡献开发者们 💖💖💖
主要内容
本次版本变更内容较多,以下为本次版本的主要内容,详细的Change Log
请参考: https://github.com/gogf/gf/releases/tag/v2.8.0
完整的代码变更请参考:https://github.com/gogf/gf/compare/v2.7.0...v2.8.0
兼容提示
- 最低
Golang
版本要求从1.18
调整为了1.20
。 - 组件
container/gring
标记废弃,未来不再继续维护。 - 组件
contrib/trace/jaeger
已从源码仓库删除。 - 组件
encoding/gjson
的Load*
方法参数,从interface{}
调整为了[]byte
参数,以提高性能。 - 组件
net/ghttp
的StartPProfServer
方法端口参数从port int
调整为了address string
以提高灵活性。 - 组件
net/gudp
重构,个别方法参数有调整:UDP组件
组件改进
database/gdb
- 时间维护特性增加对整型字段的支持,当
created_at/updated_at/deleted_at
为整型字段时,将使用时间戳更新该字段,详见:ORM链式操作-时间维护 - 新增
Model.Exist
方法,用于判断满足所给条件的数据是否存在:ORM查询-Exist - 新增对数据库
time/year
字段类型的支持:ORM高级特性-类型识别 - 新增
OrderRandomFunction
接口方法,并为常用数据库实现并支持了OrderRandom
排序方法。 - 改进
Model.Fields
方法,增加对gdb.Raw
类型参数的支持:ORM链式操作-字段获取 - 改进
With
特性中的orm
标签,增加对unscoped
的支持:模型关联-静态关联-With特性 - 配置文件增加对
unix socket
本地数据库服务连接的支持。 - 去掉链路跟踪
trace
信息中的sql
语句,以减少trace
包大小。 - 改进查询结果到
struct
的转换性能。
- 时间维护特性增加对整型字段的支持,当
net/ghttp
- 取消了规范路由注册中对输入输出对象的
XxxReq/XxxRes
命名限制。 StartPProfServer
的端口参数从port int
调整为了address string
以提高灵活性。- 去掉了链路跟踪
trace
信息中的请求/返回数据内容,以减少trace
包大小。 - 修复
/debug/admin/shutdown
接口关闭Server
时的优雅关闭问题。
- 取消了规范路由注册中对输入输出对象的
net/goai
- 允许在请求/返回结构体属性中通过
type
标签指定参数的类型。
- 允许在请求/返回结构体属性中通过
container/gtree
- 使用第三方数据结构组件
github.com/emirpasic/gods
重构gtree
实现,以提高可扩展性,利于维护。
- 使用第三方数据结构组件
encoding/gjson
Load*
方法参数,从interface{}
调整为了[]byte
参数,以提高性能。
os/gcron
- 新增
StopGracefully
方法,用于等待当前正在执行的定时任务完成后再停止定时任务:定时任务-基本使用
- 新增
os/gfsnotify
- 改进文件递归监听实现,当监听目录时,如果后续在目录中创建子级目录,或者子级目录的子级目录,以此类推,也将会被递归监听:文件监控-gfsnotify
test/gtest
- 改进
AssertIN/AssertNI
断言方法,增加对字符串子串的包含断言支持。
- 改进
util/gvalid
- 新增
required-if-all
校验规则,所有指定的参数和对应的数值相等时,该参数为必须参数:数据校验-校验规则 - 改进
phone
校验规则,增加对171
系列手机号码的验证支持。
- 新增
util/gconv
- 使用类型缓存提升转换性能,针对复杂数据类型的转换性能提升约
300%
。
- 使用类型缓存提升转换性能,针对复杂数据类型的转换性能提升约
社区组件
drivers/mssql
- 基础
driver
从github.com/denisenkom/go-mssqldb
改为了官方组件github.com/microsoft/go-mssqldb
。
- 基础
contrib/drivers/pgsql
- 增加
InsertIgnore
操作支持。 - 增加对
Golang
数组类型到数据库数组字段类型操作的支持。
- 增加
contrib/registry/etcd
- 增加
DialTimeout
及AutoSyncInterval
配置项。
- 增加
contrib/registry/nacos
- 使用官方组件依赖
github.com/nacos-group/nacos-sdk-go/v2
替换掉github.com/joy999/nacos-sdk-go
- 使用官方组件依赖
contrib/rpc/grpcx
- 去掉了链路跟踪
trace
信息中的请求/返回数据内容,以减少trace
包大小。 - 由于
grpc
组件已启用grpc.Dial
方法,这里使用grpc.NewClient
替换掉了grpc.Dial
。
- 去掉了链路跟踪
contrib/sdk/httpclient
- 新增
Handler
接口,允许使用者自定义处理HTTP Client
返回数据。
- 新增
开发工具
- 改进
gf init
命令,新增-a/monoApp
选项,用于在大仓下新创建应用项目模板:项目创建-init - 改进
gf pack
命令,新增对命令参数选项的配置文件支持,配置项路径为gfcli.pack
。 - 改进
gf tpl
命令,新增对命令参数选项的配置文件支持,配置项路径为gfcli.tpl.parse
。 - 改进
gf gen ctrl
命令,使用AST
重新实现解析逻辑,提高生成Go
代码文件内容的准确性,并提升该功能的可扩展性。 - 改进
gf run
命令:- 新增对命令参数选项的配置文件支持,配置项路径为
gfcli.run
。 - 在临时的子进程结束时,如新进程替换老进程时,自动删除临时的老进程二进制文件。
- 新增对命令参数选项的配置文件支持,配置项路径为
- 改进
gf gen dao
命令:- 增加
field mapping
特性,支持对指定字段配置生成的Golang
数据类型:数据规范-gen dao - 整型字段如果长度为
1
,例如:bit(1)/tinyint(1)/int(1)
,那么自动识别生成为bool
类型的Golang
数据类型。 - 自动读取生成代码文件的目录名称,作为生成的
dao/do/entity
文件的包名称。 - 由于
dm
数据库限制了cli
支持的平台,因此cli
去掉了对dm
数据库的默认支持,若有需要请手动修改源码安装cli
。 - 修复传递
link
参数和配置文件同时存在的场景下,link
参数失效问题。
- 增加

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
🔥🔥🔥一款兼具 “高性能、高颜值、高活跃”的分布式任务调度与重试平台 1.2.0 发布
🔥🔥🔥 灵活,可靠和快速的分布式任务重试和分布式任务调度平台 ✅️ 可重放,可管控、为提高分布式业务系统一致性的分布式任务重试平台 ✅️ 支持秒级、可中断、可编排的高性能分布式任务调度平台 生态 Snail Job 目前已经支持 Python、Jdk1.8 客户端、Jdk17 客户端,后续即将支持 Go 客户端,有兴趣的加群了解. 了解更多请加群 https://snailjob.opensnail.com/docs/group_chat.html Go 客户端: https://gitee.com/opensnail/snail-job-go Python 客户端: https://gitee.com/opensnail/snail-job-python Jdk1.8 客户端: https://gitee.com/aizuda/snail-job/tree/client-jdk8 XXLJOB迁移工具:https://snailjob.opensnail.com/docs/guide/migration_tool.html 项目特性 易用性 业务接入成本小。避免依赖研发人员的技...
-
下一篇
x-easypdf v3.2.1 版本发布,优化文本渲染逻辑
x-easypdf是一个java语言简化处理pdf的框架,包含fop模块与pdfbox模块,fop模块以创建功能为主,基于xsl-fo模板生成pdf文档,以数据源的方式进行模板渲染;pdfbox模块以编辑功能为主,对标准的pdfbox进行扩展,添加了成吨的功能。 本次更新内容如下: 新特性: 【pdfbox】新增条形码组件设置无白边的方法 【pdfbox】新增页面缩放大小时,同时缩放内容 【pdfbox】新增页面拼接的方法 【pdfbox】新增关闭启动标语的方法 【pdfbox】新增图像处理器(图片转pdf) 【pdfbox】新增创建表单文本字段的方法 【pdfbox】新增创建表单图像字段的方法 【pdfbox】新增创建表单单选字段的方法 【pdfbox】新增创建表单多选字段的方法 【pdfbox】新增填写表单单选字段的方法 【pdfbox】新增填写表单多选字段的方法 原有变更: 【pdfbox】优化文本渲染逻辑 问题修复: 【fop】修复与pdfbox模块兼容性问题 【fop】修复表格中数字不换行问题 询问AI
相关文章
文章评论
共有0条评论来说两句吧...