YMP 是一个非常简单、易用的轻量级 Java 应用开发框架,涵盖 AOP、IoC、WebMVC、ORM、Validation、Plugin、Serv、Cache 等特性,主要技术特点:
-
采用组件化、模块方式打包,可按需装配,灵活可扩展;
-
采用微内核实现 AutoScan、AOP、IoC、Events 等,涵盖 SSH 和 SSM 框架中绝大部分核心功能;
-
统一配置体系结构,感受不一样的文件资源配置及管理模式;
-
整合多种日志系统(Log4j、JCL、Slf4j 等)、日志文件可分离存储;
-
轻量级持久化层封装,针对 RDBMS(MySQL、SQL Server、Oracle、PostgreSQL)和 NoSQL(MongoDB、Redis)提供支持;
-
完善的插件机制,助力于更细颗粒度的业务拆分;
-
独特的独立服务(Serv)开发体验;
-
功能强大的验证框架,完全基于 Java 注解,易于使用和扩展;
-
灵活的缓存服务,支持 EhCache、Redis 和多级缓存(MultiLevel)技术;
-
配置简单的 MVC 架构,强大且易于维护和扩展,支持 RESTful 风格,支持 JSP、HTML、Binary、Freemarker、Velocity 等多种视图技术;
官网及文档已同步更新,新版本已提交至 Maven 中央库,可以通过以下配置获取各模块依赖:
<dependency> <groupId>net.ymate.platform</groupId> <artifactId>ymate-platform-<MODULE_NAME></artifactId> <version>2.1.3</version></dependency>
请将<MODULE_NAME>替换为具体模块名,模块详见: Maven Central – Search (sonatype.com)
相关链接:
GitHub:https://github.com/suninformation/ymate-platform-v2
主要更新内容:
【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资源文件时获取模块实例对象逻辑
One More Thing
YMP 不仅提供便捷的 Web 及其它 Java 项目的快速开发体验,也将不断提供更多丰富的项目实践经验。
了解更多有关 YMP 框架的内容,请访问官网:https://ymate.net