主要内容
GoFrame v2.10版本带来了大量重要特性和优化,其中最显著的是容器组件全面支持泛型,大幅提升类型安全性和开发体验。本次版本还新增了对GaussDB的数据库类型支持、引入了配置自动绑定与监听机制、RSA加密与SHA256哈希支持、数据库连接池优化、类型转换增强等功能。此外,开发工具在多个方面得到改进,包括更灵活的表名通配符匹配、更完善的单元测试覆盖等。这些新特性和改进将显著提升框架的易用性、性能和开发效率。
以下为本次版本的主要内容,详细的Change Log请参考:
https://github.com/gogf/gf/releases/tag/v2.10.0
完整的代码变更请参考:https://github.com/gogf/gf/compare/v2.9.0...v2.10.0
Enjoy it! 🚀
特别致谢
本次版本共有44位贡献者参与了贡献,感谢所有参与开源项目贡献的开发者们,You make GoFrame possible!💖。
以下贡献者列表按照名称字母增序排序: @973212983、@aitimate、@chen-mou、@chenrui333、@dependabot、@DustScribe、@elonnzhang、@fainc、@fengshunli、@gqcn、@hailaz、@hicolin、@houseme、@iamcc30、@ivothgle、@joy999、@LanceAdd、@li-zheng-hao、@lingcoder、@liov、@ljluestc、@lxy1151、@lxzan、@minimAluminiumalism、@oldme-git、@qiulaidongfeng、@sanrentai、@shubo83、@smzgl、@sxp20008、@The-night-elves、@tiger1103、@UncleChair、@wanghaolong613、@wangle201210、@windvalley、@xiaoyi510、@xiongchao123、@yangyanqing、@yuluo-yx、@YunzhiYike、@zhang5788、@Zjmainstay、@zishang520

兼容提示
-
container容器组件全面支持泛型,除了新增泛型类型,原有容器类型底层已迁移至类型安全的泛型实现。 -
util/gpage分页组件已标记为废弃,建议使用ORM的分页功能或自行实现分页逻辑。
组件改进
-
container/garray -
container/gmap -
container/gset -
container/glist- 新增泛型
List[T],提供类型安全的双向链表操作。 - 完善单元测试和示例代码。#4483
- 相关使用文档已更新,请参考:
- 新增泛型
-
container/gqueue -
container/gring- 新增泛型
Ring[T],提供类型安全的环形队列操作。#4496 - 相关使用文档已更新,请参考:
- 新增泛型
-
container/gpool- 新增泛型
Pool[T],提供类型安全的对象池操作。#4493 - 相关使用文档已更新,请参考:
- 新增泛型
-
container/gtree -
container -
database/gdb- 新增
MaxIdleConnTime配置项,支持设置连接池中空闲连接的最大生存时间,优化连接池管理。#4625 - 新增
lock update skip locked支持,提供更灵活的行锁定机制。#4607 - 新增表字段元数据设置功能,生成
dao时可自动生成表字段注册代码,便于字段管理和验证。#4460 - 新增获取所有配置的功能,方便验证等业务操作。#4389
- 优化
SoftTime软删除时间功能,提升易用性。#4559 - 优化字段分组时的性能,提升查询效率。#4440
- 修复原始
SQL Count忽略Where条件的问题。#4611 - 修复
DoCommit中的panic处理,防止数据库驱动panic时阻塞。#4423 - 修复分页查询中使用固定缓存键导致的缓存错误覆盖问题。#4339
- 修复使用
WithAll对reflect.Value对象执行Scan时iTableName接口检测问题。#4606 - 修复当表名/别名未知时
FieldsPrefix中的字段过滤问题。#4602 - 修复
MySQL JOIN时GROUP BY/ORDER BY中的列名歧义问题。#4521 - 修复使用数据库分片功能时数据库输出日志中的
schema错误。#4319 - 修复
GetArray返回类型并添加Bools方法。#4452 - 简化
order和group by别名引用逻辑,提升代码可读性。#4555 - 为
FieldsPrefix添加引号,确保字段名的正确性。#4485 - 支持
with中的多个order字段。 - 相关使用文档已更新,请参考:
- 新增
-
net/ghttp -
util/gconv -
os/gcfg -
os/gfile -
os/gtime -
os/gcache- 优化默认缓存延迟初始化,减少不必要的资源占用。#4468
-
os/gcron- 修复
gcron包的单元测试用例偶尔失败的问题,提升测试稳定性。#4419
- 修复
-
encoding/gjson -
net/gclient -
net/goai -
util/gvalid -
util/gutil -
crypto/grsa- 新增
RSA加密解密功能,提供完整的RSA加密支持,包括公钥加密、私钥解密等操作。#4571 - 相关使用文档已更新,请参考:RSA算法-grsa
- 新增
-
crypto/gsha256- 新增
gsha256组件,提供SHA256哈希计算功能。#4558 - 相关使用文档已更新,请参考:SHA256算法-gsha256
- 新增
-
errors/gerror -
database/gredis- 支持获取原始
Redis客户端,提供更底层的操作能力。#4306
- 支持获取原始
-
util/gpage- 标记为废弃,建议使用
ORM的分页功能或自行实现。#4230 - 相关使用文档已更新,请参考:分页管理-gpage
- 标记为废弃,建议使用
社区组件
-
contrib/registry/nacos -
contrib/drivers/pgsql -
contrib/drivers/gaussdb- 新增
gaussdb驱动支持,扩展数据库支持范围。#4563
- 新增
-
contrib/drivers/dm -
contrib/drivers/mysql -
contrib/drivers/mssql -
contrib/drivers/oracle- 为
dm/pgsql/mssql/oracle添加Replace/LastInsertId功能支持,完善数据库功能。#4547
- 为
-
contrib/clickhouse -
contrib/config/apollo- 修复
gcfg config apollo无法检索多个命名空间配置的问题,watch apollo change导致配置丢失的问题。#4509
- 修复
开发工具
-
gf run -
gf init -
gf gen ctrl -
gf gen dao- 新增为
tables配置添加通配符模式支持,提供更灵活的表名匹配能力。#4632 - 新增为
tableEx属性添加广泛匹配支持。#4453 - 改进命令实现,支持
removeFieldPrefix选项,更灵活地处理字段名前缀。#4243 - 改进
typeMap检查逻辑。#4410 - 修复重叠的
shardingPattern匹配问题,确保分片配置正确。#4631 - 修复生成时可能导致重复的问题。#4268
- 修复在多个
shardingPattern表中生成分片dao的问题。#4379 - 修复表
ex修复bug的匹配。#4458 - 修复命令执行变得非常慢的性能问题。#4498
- 修复在
windows平台上为clickhouse生成代码时出现unknown time zone错误。#4368 - 相关使用文档已更新,请参考:
- 新增为
-
gf gen service -
gf gen enums- 修复使用相对路径时输出路径错误。#4636
-
gf build- 修复
gf build --dumpEnv命令错误。#4635
- 修复
-
gf env- 修复命令错误。#4635
-
测试完善