撒花!Go-Spring 迄今最稳定版本 v1.0.4 正式发布了!本次更新重点在 Web API 完善和 BeanSelector 实践上面。同时这个版本的 API 绝对稳定,大家可以放心地在生产环境中使用了!详细的更新内容如下:
go-spring-parent
1. SpringError 模块添加 PanicImmediately 函数,增加错误码的默认值,优化 RPC 结果的显示;
2. SpringLogger 模块添加 Print 和 Printf 函数,可适配更多 Logger 接口,线程安全的修改 Logger 的打印级别;
3. 实现更多辅助函数,增加 int 和 string 的 Contains 函数,增加获取函数所在文件及其行数的辅助函数,实现可以 Add 和 Wait Goroutine 的 WaitGroup 封装类,比原生函数更安全的可检测 reflect.Value 是否为 nil 的 IsNil 函数,添加 MD5 和 BASE64 的编码函数,增加 FindInList 函数,性能更好的 LocalIPv4 函数,time.Time 和 time.Duration 转毫秒的辅助函数,等等。
go-spring-web
1. Handler 提升为接口,打印更丰富的路由信息;FilterChain 提升为接口,完美适配 echo 和 gin 的中间件机制;全面统一 echo、gin 以及 {} 路由风格;全面实现 WebServer、WebContainer、Router、Mapper 四个级别的 Filter 机制;
2. WebContainer 增加 ReadTimeout 和 WriteTimeout 配置;BIND 模式支持 WebContext 参数,支持无参和无返回值,RPC 处理函数可定制;增加 gin、echo 与 WebContext 之间的互转函数;
3. 改造 WebServer 流式接口;优化 Swagger 使用;减小 WebContainer 方法集;引入参数校验框架;修复 gin 路由的 BUG;增加 WebContext.SetRequest 函数,等等。
go-spring
该版本最大的特点是引入 BeanSelector (选择器) 和 Bean Tag,进而统一了 GetBean、FindBean 和 CollectBeans 三大函数的关系。其他改动点如下:
1. 解决了 WebServer 重复注册的问题,实现了路由注册时的多端口匹配机制,支持 Receiver 方法注册路由,整合了 Filter 和 Condition 机制,可以更好的打印 URL 注册信息,支持 Server、Container、Router、Mapper 四重级别的过滤器;
2. 支持更多种数组值的绑定,收集模式支持指定 Bean 选择器,扩展 ${} 的语法,当引用类型遇见 ${} 时首先获取对应的属性值,然后使用获取到的属性值当做 tag 进行 Bean 的筛选;
3. 删除非严格模式,删除注入过程中 Bean 排序和堆栈 Watch 功能,删除关闭自动导出功能的函数,删除事件通知函数;
4. 支持 destroy 函数按顺序依次调用,修复 Map 属性值优先返回默认值的 BUG,等等。
想要更多了解 Go-Spring 是如何使用的请下载 https://github.com/go-spring/go-spring-boot-demo 项目。