Releases: suninformation/ymate-platform-v2
Release v2.1.3
主要更新内容:
【Cache】
- 优化配置文件的初始化和默认配置文件的创建与加载逻辑
【Commons】
- 导出文件时支持设置第一个单元格作为行索引列
- 导出Excel文件时根据数据类型设置单元格样式
- 导出文件时支持列排序并调整自定义渲染列接口方法参数定义
- 导入Excel文件支持通过类成员声明@ExportColumn(importable=true)注解进行文件解析
- 调整MIME_TYPE加载逻辑为默认数据优先并更新默认映射配置
- 优化服务异常类构造逻辑并向默认异常处理器注册
- 新增CloseableHttpClientHelper和CloseableHttpRequestBuilder用于替换原HttpClientHelper和HttpRequestBuilder类
- 获取应用根路径时进行验证以修正JDK17及以上版本中路径无效问题
- 优化获取文件扩展名及临时文件创建逻辑
- 优化文件的复制与移动操作逻辑
- 优化调整数据源配置逻辑以支持动态添加和初始化
【Configuration】
- 优化模块资源回收的处理逻辑
【Core】
- 修正类加载时可能产生异常导致程序中断问题
- 优化模块资源回收的处理逻辑
- 优化调整拦截器上下文本地线程变量的销毁逻辑
- 新增方法用于判断指定名称或别名的属性值是否发生变化
- 为上下文接口增加查找(若上下文中不存在则尝试从全局参数中查找)并返回参数值的工具方法
- 支持通过注解进行拦截器全局规则设置
【Log】
- 优化以避免在框架销毁过程中输出日志可能产生异常
- 优化模块资源回收的处理逻辑
- 优化配置文件的初始化和默认配置文件的创建与加载逻辑
【JDBC】
-
修正嵌套事务回滚时存在的层级问题
-
新增AbstractCrudRepository存储器抽象实现类
-
新增AbstractRepository存储器接口实现类,它提供一组与会话接口相似的方法集合
-
支持通过类成员声明@Qfield注解构建条件对象
-
调整更新操作时字段过滤逻辑
-
增加属性渲染器接口方法参数使其具备访问目标对象本身的能力并支持通过注解自定义参数集合
-
新增@QDistinct去重注解
-
支持通过多个对象构建联合查询
-
优化Like对象构造方法
-
优化脚手架配置参数未填写时将通过当前数据源连接自动获取数据库名和用户
-
新增配置参数用于控制模块初始化时是否自动完成数据源连接动作
-
优化数据源延迟初始化逻辑以修正在特定情况下获取到尚未完成初始化的连接对像导致空指针异常的问题
-
标记会话接口中部分冗余方法为不被推荐(将在后续版本中剔除)
-
优化finally块中的异常处理以及日志输出逻辑
-
优化条件表达式对日期时间值类型的支持并简化分组字段的配置
-
增加字段别名方法重载
-
优化数据源配置逻辑以支持动态添加和初始化
-
新增方法用于判断指定名称或别名的属性值是否发生变化
-
优化属性值自定义渲染器处理逻辑
-
优化配置文件的初始化和默认配置文件的创建与加载逻辑
-
优化模糊查询通配符转义相关的处理逻辑
-
优化字段排除逻辑
-
优化排序对象支持通过解析字符串进行排序设置
【MongoDB】
- 增加属性渲染器接口方法参数使其具备访问目标对象本身的能力并支持通过注解自定义参数集合
- 新增配置参数用于控制模块初始化时是否自动完成数据源连接动作
- 优化数据源延迟初始化逻辑以修正在特定情况下获取到尚未完成初始化的连接对像导致空指针异常的问题
- 优化数据源配置逻辑以支持动态添加和初始化
- 优化属性值自定义渲染器处理逻辑
【Redis】
- 新增配置参数用于控制模块初始化时是否自动完成数据源连接动作
- 优化数据源延迟初始化逻辑以修正在特定情况下获取到尚未完成初始化的连接对像导致空指针异常的问题
- 优化调整数据源配置逻辑以支持动态添加及初始化
【Validation】
- 优化日期时间值类型参数的验证逻辑
- 优化参数验证层级和名称的解析与验证逻辑
- 增加检查参数值是否由数字组成的相关配置和处理逻辑
- 优化验证日期类型参数支持使用today|yesterday|week|month|year等常量值
- 调整邮件地址正则表达式初始化逻辑并允许通过系统参数重设
【WebMVC】
- 优化调整跨域配置和使用方式,不再基于拦截器@crossdomain注解实现
- 优化允许上传的文件MIME类型参数项支持使用扩展名进行配置(如:.txt 将尝试自动转换为 text/plain)
- 服务异常类向默认异常处理器注册
- 调整参数签名的执行顺序优先并新增可选配置项允许禁用参数签名验证
- 优化视图渲染后主动调用Reader和InputStream的关闭方法
- 新增配置项用于开启请求路径匹配严格模式并设置其默认不开启以防止旧版项目出现兼容问题
- 优化控制器映射路径的解析与匹配逻辑
- 优化finally块中的异常处理以及日志输出逻辑
- 修正上传文件产生的临时文件名称过长的问题
- 优化上传文件的复制与移动操作逻辑
- 优化调整拦截器上下文本地线程变量的销毁逻辑
- 优化加载I18N资源文件时获取模块实例对象逻辑
Release v2.1.2
主要更新内容:
【Cache】
- 新增Redis缓存同步锁扩展接口并支持通过SPI方式自定义
- 将一些使用MD5的方法调整为SHA1算法
- 调整参数签名时默认采用SHA1算法
- 调整文件签名方法支持使用SHA1算法
- 优化调整缓存管理器等配置相关代码
【Commons】
- 优化JXLS模版文件处理逻辑
- 增加类型引用包装器并完善JSON反序列化接口支持
- 优化调整Jackson适配器初始化构建ObjectMapper的相关逻辑
- 优化文件导出列注解对日期时间和货币类型配置及渲染逻辑
- 优化文件导出列空值的渲染逻辑
- 优化调整获取本机IP地址相关方法的处理逻辑
- 调整异常堆栈信息输出字符串方法至运行时工具类
- 新增方法用于判断属性值是否发生变化
- 新增方法用于通过目标日期时间类对象提取时间毫秒值
- 将一些使用MD5的方法调整为SHA1算法
- 优化集合类型判断逻辑
- 优化调整JSON序列化相关代码
- 新增FST列化器实现并优化调整相关配置及代码
- 新增JSON适配器工厂接口用于支持SPI方式加载
- 优化调整执行队列日志输出级别
- 新增接口用于速度计数器参数配置及自定义数据监听处理逻辑并优化日志输出等
- 优化调整速度统计监听器为独立接口及相关代码
- 优化代理类型解析逻辑以避免无法获取注解的情况
【Configuration】
- 完善配置文件分析器写入内容到文件或输出流
- 优化配置文件类型判断逻辑以避免可能产生空指针异常
【Core】
- 优化对象资源回收逻辑
- 优化调整全局密码处理器以支持对配置文件任意参数项加密处理
- 优化以支持获取全部成员属性状态对象集合并提供相关方法以JSON字符串格式输出属性名称和值
- 优化调整上下文接口及相关类不再继承序列化接口
- 新增判断和获取扩展参数名称相关方法
- 增加对框架配置文件中自定义扩展参数值的注入支持
- 优化代理工厂以支持方法参数的拦截处理
【JDBC】
- 新增方法用于判断属性值是否发生变化
- 优化调整日期时间类型字段取值逻辑
- 优化事务及异常处理逻辑
- 调整实体对象执行删除操作的返回值类型为影响记录数
- 优化对象查询的条件解析逻辑并为查字段相关注解增加是否包装标识符配置项
- 优化为批量更新对象增加直接读取并执行SQL脚本文件相关方法
- 优化对像空判断逻辑以支持集合类型
- 优化对记录类成员属性状态支持类的代理处理逻辑
【MongoDB】
- 修正实体更新指定属性过滤条件构建错误
- 优化调整用户身份验证相关配置及处理逻辑
- 优化并修正分页查询时返回总记录数量不正确的问题
- 优化事务及异常处理逻辑
【Plugin】
- 优化调整上下文接口及相关类不再继承序列化接口
【Serv】
- 优化统一线程的命名规则
- 优化服务线程命名并为心跳包内容增加空判断
- 移除不必要的日志输出代码
- 优化判断并修正在未开启空闲会话检测时执行会话管理器关闭操作可能产生的空指针异常
- 修正文本行编码时会产生多余字节问题
- 修正单元测试代码在Windows环境下可能无法正确执行的问题
- 检查客户端会话的空闲时间毫秒值将被扩大10%
- 优化调整速度统计监听器为独立接口及相关代码
- 优化监听器接口抽象实现类
【Validation】
- 新增静态方法以便快速构建天周月值对象
- 优化调整RSA密钥数据提供者接口实现类加载和初始化逻辑
【WebMVC】
- 优化验证结果及异常类相关代码
- 增加requestIgnoreUrls参数项用于配置需要排除的请求地址前缀集合
- 优化视图调试日志输出
- 调整控制器请求路径映射配置项默认取值为空
- 优化签名验证时间戳有效周期值允许通过配置文件扩展参数进行设置
- 优化并修正异常响应状态码配置加载及处理逻辑
- 调整异常堆栈信息输出字符串方法至运行时工具类
- 升级文件上传依赖包版本并新增上传文件数量最大值配置参数
- 调整上传文件大小配置参数默认值为-1
- 将一些使用MD5的方法调整为SHA1算法
- 优化签名验证逻辑增加时间戳和时间有效期参数并调整签名默认采用SHA1算法
- 优化错误视图模版
- 修正Convention模式下可能出现的URL伪静态参数解析问题
- 优化主机名称验证器在未指定具体检测器时将尝试通过SPI方式加载全局接口实例,若未找到则使用默认检测器
- 优化自定义响应对象输出处理逻辑
- 优化调整上下文接口及相关类不再继承序列化接口
- 优化调整异常处理器接口的错误码为字符串类型并兼容原整数类型
- 优化调整IWebMvc模块实例对象的获取逻辑
【Other】
- 更新依赖包版本
- 更新文档及配置
Release v2.1.1
主要更新内容:
【JDBC】
- 补充常规运算函数相关内容
- 优化常规运算函数的减法和除法的参数顺序
- 修正GroupBy分组对象构造方法调用错误
- 优化以支持$表达式允许通过冒号分隔符指定其数据类型
- 将EntityMeta类中有关于属性与字段名之间转换的方法移至ClassUtils类并更新相关文档
【Serv】
- 优化统一线程的命名规则
- 优化服务线程命名并为心跳包内容增加空判断
- 移除不必要的日志输出代码
- 优化判断并修正在未开启空闲会话检测时执行会话管理器关闭操作可能产生的空指针异常
【Configuration】
- 增加配置文件存放的基准目录名称参数项
【Other】
- 更新依赖包版本
- 更新文档及配置
Release v2.1.0
本次大版本更新间隔时间较长,主要是对模块的加载机制进行了大的优化调整,在近两年时间,通过实际项目使用过程中不断完善、打磨各个模块的细节,尽可能的做到让它更方便、更实用、更稳定。
在兼容性方面,由于工程的包结构有所调整,部份类所在包名与 YMP v2.0.x 版本存在差异,因此升级时需要重新导入,除此之外,功能及使用上 100% 覆盖。
另外,最耗时费力的就编写文档,也是 YMP 框架发布以来最全面的一次文档更新,文档入口:https://ymate.net/guide
本次除发布框架新版本之外,一同发布的还有以下扩展工具及模块,还有更多扩展模块待整理后发布,请关注: https://ymate.net/modules
YMP 不仅提供便捷的 Web 及其它 Java 项目的快速开发体验,也将不断提供更多丰富的项目实践经验。
了解更多有关 YMP 框架的内容,请访问官网:https://ymate.net
Release v2.0.11
Release v2.0.10
主要更新内容:
【Redis】
优化客户端名称和密码参数值为空时的处理逻辑;
修正端口配置项常量值错误;
【Cache】
优化EhCache缓存销毁逻辑以免产生IllegalStateException异常;
【JDBC】
优化调整抽象数据库方言在构建COUNT查询时将分析并移除SQL语句中OrderBy相关内容;
修正拼装复合主键实体查询条件时可能产生的空指针异常;
修正当字段为自增时不判断参数空异常;
【WebMVC】
修正临时文件写入时提示文件已存在的异常;
Release v2.0.9
主要更新内容:
【WebMVC】
- 修复includeJSP方法在部份Windows系统乱码;
- 优化JSON序列化Map值有序输出;
- 优化参数比较验证器及参数名称自定义问题;
【JDBC】
- 优化数据库方言新增接口方法用于构建计算查询结果总记录数量的SQL语句;
- 优化SQLServer数据库方言构建分页查询语句对DISTINCT关键词的处理逻辑;
- 修正结果集数据处理常量ARRAY和MAP存在多线程问题,请在使用时通过new方式创建实例对象;
- 优化调整实体属性设置为非Nullable且值为空时将抛出无效参数异常;
- 修正非单例控制器成员参数赋值问题;
- 优化条件和分组查询对象;
【Configuration】
- 修正未正确获取指定配置分类问题;
- 修正配置注解方法名;
【Other】
- 重构官方网站并提交开发指南文档;
- 查看文档...
Release v2.0.8
主要更新内容:
- 升级fastjson版本至1.2.61;
- 修正FileUploadHelper中多次getFile方法时返回文件对象为null的问题;
- 修正自增字段无法正确取值问题;
- 修正数据源配置常量引用错误;
- 修正数据库函数名称书写错误;
- 修正模块名参数传递错误;
- 修正当执行SQL字段名检查时需要对Fields参数是否为空集合进行判断;
Release v2.0.7
主要更新内容:
- 优化调整自定义类型转换器支持多种数据类型注册;
- 优化调整基本SPI加载自定义类型转换器;
- 优化并完善SPI类加载逻辑;
- 调整心跳服务逻辑为睡醒了再发送;
- 优化调整日志输出支持简化包名和填充对齐配置项;
- 优化Where处理groupBy逻辑;
- 优化自定义异常处理器结果判断;
- 修正实体代码生成器错误引用复合主键类名称的问题;
- 更新c3p0依赖包版本至0.9.5.4解决CVE-2018-20433警告问题;
- 优化支持根据数据源名称独立配置DBCP连接池及更新文档相关内容;
- 修正从JAR包中提取资源方法解决在Windows系统中无法正确执行及路径问题;
- 修正Convention模式下拦截器的依赖注入问题;
Release v2.0.6
主要更新内容:
核心(Core)
- [新增] 调整框架初始化逻辑使各模块支持通过编码方式配置(非配置文件)启动;
- [新增] 优化调整框架配置支持自定义加载器和代理工厂并新增基于
Javassist
的代理工厂接口实现; - [新增] 空操作代理工厂(使用它表示需要禁用框架的AOP特性, 主要用于
Android
应用); - [新增] 为
ClassUtils
类新增通过读取META-INF/services/
路径下与类名称相同的配置文件加载实例(类似ServiceLoader
方法); - [新增] 为
RuntimeUtils
类新增获取当前程序执行进程编号方法; - [新增] 为
FileUtils
类新增从JAR包中提取/META-INF/{prefixPath}
目录下资源文件并复制到{targetFile}
指定目录方法; - [新增] 在类扫描过程中通过
excluded_packages
参数排除指定类或包; - [新增] 新增
ThreadUtils
线程工具类支持执行结果过滤并调整相关代码; - [新增] 新增
Speedometer
速度计数器工具对并发处理量计算; - [新增] 新增
ExecutableQueue
可执行队列服务类; - [优化] 框架初始化时优先尝试加载配置体系模块以保证配置文件加载路径的一致性;
- [优化] 优化框架初始化配置及类对象扫描性能; 不再推荐直接向框架对象管理器直接注册实例象;
- [优化] 自动扫描路径分析及各模块配置解析逻辑;
- [优化] 优化
RecycleHelper
全局对象资源回收器支持异步操作; - [优化] 优化
CodecUtils
加解密工具; - [优化] 优化
ConsoleTableBuilder
类使用markdown
格式输出包含下划线的内容进行转义; - [优化] 拦截器支持框架自动扫描和IoC依赖注入特性;
- [优化] 被拦截目标方法的返回值类型为
void
则通过异常向上层返回拦截器执行结果; - [优化] 为
PropertyStateSupport
类构造方法增加ignoreNull
参数用于设置是否忽略空值; - [优化] 环境上下文对象统一实现
IContext
接口; - [优化] 移动
MimeTypeUtils
和StringEscapeUtils
两个工具类至核心包; - [优化] 代码优化及相关文档内容更新;
配置体系(Configuration)
- [新增] 调整框架初始化逻辑使各模块支持通过编码方式配置(非配置文件)启动;
- [优化] 针对插件中的配置对象支持通过注解自动扫描注册;
- [优化] 代码优化及相关文档内容更新;
缓存 (Cache)
- [新增] 优化调整框架初始化逻辑使各模块支持通过编码方式配置(非配置文件)启动;
- [优化] 优化缓存提供者接口实现类结构;
- [优化] 代码优化配置及相关文档内容更新;
日志(Log)
- [新增] 优化调整框架初始化逻辑使各模块支持通过编码方式配置(非配置文件)启动;
- [优化] 代码优化配置及相关文档内容更新;
持久化(JDBC)
- [新增] 调整框架初始化逻辑使各模块支持通过编码方式配置(非配置文件)启动;
- [优化] 优化数据源适配器配置及生成实体时对数据库表备注信息中存在的双引号进行转义;
- [优化] 针对插件中的存储器支持通过注解自动扫描注册;
- [优化] 基于查询对象构建
SQL
语句不支持Fields
对象使用排除方式, 将输出日志警告并清空字段集合; - [优化] 优化实体生成器使其支持输出
csv
格式并支持不生成任何文件仅输出表结构; - [优化] 优化实体生成器字段描述信息的输出格式;
- [优化] 优化实体生成器模板;
- [优化] 当分页查询时,若count为0则直接返回空结果集, 避免执行后面的分页语句;
- [优化] 强制采用
SQL92
定义的标准统计行数的语法count(*)
进行记录行数统计; - [优化] 优化抽象实现
saveOrUpdate
方法的Fields
的参数仅作用于更新操作; - [优化] 修正获取自增长字段值异常问题;
- [优化] 代码优化配置及相关文档内容更新;
插件(Plugin)
- [新增] 调整框架初始化逻辑使各模块支持通过编码方式配置(非配置文件)启动;
- [新增] 优化插件模块扫描及加载处理逻辑并简化配置;
- [优化] 代码优化配置及相关文档内容更新;
服务 (Serv)
- [新增] 调整框架初始化逻辑使各模块支持通过编码方式配置(非配置文件)启动;
- [新增] 新增会话管理器辅助类对客户端会话进行统一管理并支持服务端并发量实时监控;
- [新增] 新增会话管理器对UDP服务端的支持;
- [新增] 新增空闲会话检查器支持将超过预设时间的会话对象从管理器中移除并触发相关事件回调;
- [新增] 新增客户端断线重连检测间隔配置项并触发重连事件监听回调;
- [新增] 新增判断客户端是否正在关闭的接口方法并调整心跳和重连服务的处理逻辑;
- [优化] 优化会话及客户端断线重连的判断条件;
- [优化] 优化客户端与服务端连接已建立且准备就绪状态判断的准确性;
- [优化] 优化服务端与客户端构建方式支持手动创建实例;
- [优化] 代码优化配置及相关文档内容更新;
Web框架 (WebMVC)
- [新增] 调整框架初始化逻辑使各模块支持通过编码方式配置(非配置文件)启动;
- [新增] 优化配置并新增错误处理器接口默认实现以及针对
Web
开发中常用的工具方法和响应结果处理工具类(大量移植Framework
项目中的稳定代码); - [新增] 添加获取控制器请求映射接口方法;
- [新增] 请求分发器新增默认
Content-Type
设置项; - [优化] 移动
MimeTypeUtils
和StringEscapeUtils
两个工具类至核心包; - [优化] 被注册的控制器类不强制必须使用@controller注解声明;
- [优化] 优化错误消息处理;
- [优化] 优化配置读取及错误消息处理;
- [优化] 优化
JspView
输出流编码问题; - [优化] 为上传文件包装器接口新增并实现直接获取临时文件File对象方法;
- [优化] 被拦截目标方法的返回值类型为
void
则通过异常向上层返回拦截器执行结果; - [优化] 修正二进制视图
BinaryView
对象输出字符串内容长度的判断; - [优化] 修正
Freemarker
配置对象初始化后未赋值全局变量; - [优化] 代码优化配置及相关文档内容更新;