👋 Hi ,朋友们!GoFrame框架v2.2.0版本在今天发布啦!
本次版本的最大的看点在于:
driver,目前框架通过社区组件的方式提供了9种数据库类型的driver实现,满足绝大部分业务项目的需求。尤其是本次版本新增了对国产达梦数据库的支持,未来我们期望社区的开发者能提供更多国产数据库类型的driver实现,贡献给开源社区。3种类型的配置中心接口实现,支持Apollo/Polaris/Kubernetes ConfigMap。GoFrame框架采用了模块化低耦设计,组件分为框架主库与社区组件。框架主库提供核心通用轻量的基础组件,而社区组件是与框架主库解耦的单独组件包,保证主库通用轻量的同时为框架扩充了更多的能力。44位,框架的贡献者达到了107位。感谢大家为社区付出的努力和贡献!💖Github ChangeLog:https://github.com/gogf/gf/releases/tag/v2.2.0
59种常用内置校验规则:数据校验-校验规则contrib/config/kubecm,实现基于kubernetes configmap的配置组件Adapter实现:https://github.com/gogf/gf/tree/master/contrib/config/kubecmcontrib/config/apollo,实现基于apollo配置中心的配置组件Adapter实现:https://github.com/gogf/gf/tree/master/contrib/config/apollocontrib/config/polaris,实现基于polaris配置中心的配置组件Adapter实现:https://github.com/gogf/gf/tree/master/contrib/config/polariscontrib/drivers/dm国产达梦数据库支持:https://github.com/gogf/gf/tree/master/contrib/driverscontrib/drivers/pgsql在 ORM 组件层面支持更多pgsql内置的数据类型。contrib/drivers/pgsql支持写入操作下的LastInsertId特性。contrib/drivers/clickhouse支持decimal.Decimal数据类型。contrib/drivers/dm国产达梦数据库支持:https://github.com/gogf/gf/tree/master/contrib/driverscontrib/registry/etcd实现,将日志对象改为接口属性,允许外部注册自定义的日志对象。contrib/config/kubecm,实现基于kubernetes configmap的配置组件Adapter实现:https://github.com/gogf/gf/tree/master/contrib/config/kubecmcontrib/config/apollo,实现基于apollo配置中心的配置组件Adapter实现:https://github.com/gogf/gf/tree/master/contrib/config/apollocontrib/config/polaris,实现基于polaris配置中心的配置组件Adapter实现:https://github.com/gogf/gf/tree/master/contrib/config/polarisdriver实现逻辑,后续新增更多的数据库driver支持更加简便。ToSQL方法,用于将 ORM 操作生成可供调试的SQL语句,并不真正执行SQL。CatchSQL方法,用于通过闭包方法获取内部执行的SQL语句列表。Core对象中的GetStruct/GetStructs方法,统一使用Scan方法操作,以提高易用性。Extra及Protocol配置,用于设置额外的配置参数以及链接协议,默认通过Link配置自动解析。Filtered接口,采用默认实现,简化复杂度、提高易用性。ConvertValueForLocal及CheckLocalTypeForField接口,用于自定义的数据类型转换及数据类型获取,并提供默认实现。ClearTableFields方法,用于清理特定数据表的数据结构缓存:ORM 高级特性-字段映射ClearTableFieldsAll方法,用于清理当前数据库对象所有的数据表数据结构缓存:ORM 高级特性-字段映射ClearCache方法,用于清理特定数据表的所有查询缓存:ORM 链式操作-查询缓存ClearCacheAll方法,用于清理当前数据库对象所有的查询缓存:ORM 链式操作-查询缓存gcompressGzipPathWriter方法没用与将特定路径下的文件压缩到指定的io.Writer中。zip算法打包压缩文件 /目录并返回字节内容。gjsonContentTypeJson等字符串参数调整为ContentType类型--gf.gerror.brief及GF_GERROR_BRIEF环境变量开关,控制是否在错误堆栈打印时过滤框架堆栈:错误处理-其他特性ghttpMiddlewareJsonBody用于校验请求Body是否JSON格式。GetListenedAddress方法,用于获取HTTP Server在指定:0监听端口时系统随机分配的监听地址。500。gtcpGetListenedAddress/GetListenedPort方法,用于获取TCP Server在指定:0监听端口时系统随机分配的监听地址 /端口。gudpGetListenedAddress/GetListenedPort方法,用于获取UDP Server在指定:0监听端口时系统随机分配的监听地址 /端口。goaiURL和Body中存在相同参数时。gtraceWithTraceID方法的错误提示为更明确的信息。WithUUID方法,用于将标准的UUID转换为OpenTelemetry的TraceID。gcfgAvailable接口方法定义,将resource参数改为非必须参数。gcrongctxGetInitCtx/SetInitCtx方法,用于main包及包init包初始化方法执行时的context获取和设置。glogILogger接口定义,用于跨组件使用日志组件时的接口化解耦。gresFile对象新增Export方法,用于将该对象关联的资源导出到指定的磁盘路径。gstructsRecursiveOption从int类型改进为自定义类型,并调整对应的方法参数定义。gstr.IsGNUVersion方法,用于判断给定的字符串是否满足GNU版本规则。gconvNaN特殊字符串的int64/uint64转换支持。gutilGetOrDefaultStr/GetOrDefaultAny方法,用于默认值和非必须参数的便捷处理。gvalid59种常用内置校验规则:数据校验-校验规则garray/gmap/gset/glist/gtype/gvar在容器对象为nil场景下DeepCopy的panic问题。gtime在对象为nil场景下DeepCopy的panic问题。Group方法在给定多个排序条件时的覆盖问题。HTTP Server在JSON格式字符串返回时的内容重复输出问题。gstr.Nl2Br方法在部分场景下由于逻辑判断引起的数组访问越界问题。Req对象属性为*gjson.Json类型的参数接收问题。gen dao命令,增加clear参数,用于自动清理目标数据库中不存在的本地数据模型 Go 文件:数据规范-gen daogen service命令:接口维护-gen serviceclear参数,用于自动清理在logic没有对应的接口代码及文件。run命令,增加自定义的程序运行参数。 1
sadfQED2 2022-10-10 21:13:06 +08:00 via Android
不是 java 写的,这不够企业级啊 [狗头]
|
3
lvsshuttao 2022-10-10 22:03:47 +08:00
升太快了,我还在用 2.0.3
|
4
chenall 2022-10-10 23:43:57 +08:00 via Android
新项目考虑用新版的,旧的还是继续用旧版的。
我还在用 1.6 的没精力升级😭😭 |
6
daiv 2022-10-11 07:36:00 +08:00
很棒的框架, 我们是用来写 api 和处理数据等
|
7
GP1 2022-10-11 07:40:21 +08:00
有那么多的框架,为什么要用你们的呢?
你们的框架和其他框架比,优缺点是什么呢? 用了有什么好处呢? |
8
sunny1688 2022-10-11 09:12:02 +08:00
gin 不香吗
|
9
dic 2022-10-11 10:09:16 +08:00
之前写了一个自己的小网站用的 GoFrame ,网站都写的差不多了,最后用到 ORM 的多对多功能时发现非常难用,文档上也把多对多直接省略了,最后直接换成 Echo + Ent 舒服多了。
|
10
sauren 2022-10-11 10:12:12 +08:00
支持支持~~~ 我正在用~
|
11
dorothyREN 2022-10-11 15:56:24 +08:00
还是 springboot 香
|
12
darkyoung 2022-10-17 18:03:07 +08:00
支持下!
|