YMP v2.0.1 发布,轻量级 Java 应用开发框架

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

本次版本更新主要针对YMP框架的易用、稳定、安全性等方面的性能优化及BUG修复。

更多相关模块工程也会陆续更新,更多模块请参看:YMP v2.0 模块项目集中发布!第一波!

新版本已提交至Maven中央库,可以通过以下配置获取各模块依赖:

<dependency>
    <groupId>net.ymate.platform</groupId>
    <artifactId>ymate-platform-<MODULE_NAME></artifactId>
    <version>2.0.1</version>
</dependency>

请将替换为具体模块名,模块详见: The Central Repository Search Engine
更新记录:

核心 (Core)

  • 优化类扫描逻辑被声明@Ignored注解的类将被自动扫描程序忽略;
  • 优化BeanWrapper为其新增类属性过滤器接口及相关方法;
  • 优化获取类方法参数名称集合的逻辑及相关代码,若找不到或Missing时不会抛出异常而是返回元素数量为0的空数组;
  • 增加拦截器全局规则设置,调整拦截器可以不用修改代码;
  • 为BlurObject对象添加对Clob和Blob数据类型的支持;
  • Fastjson存在高危安全漏洞,已更新升级至1.2.28;
  • 调整Events事件触发模式由事件监听者在订阅事件时决定;
  • 重新调整代理类的执行顺序Order参数值并改成注释为数值小的最先执行;
  • 优化Base64方法调用;

配置体系 (Configuration)

  • 修正尝试通过运行时变量或系统变量获取CONFIG_HOME参数的处理逻辑;

持久化 (JDBC)

  • 优化数据库连接失败会导致服务启动不成功的问题增加尝试重新初始化逻辑;
  • 实体代码生成器新增允许在指定字段上配置是否使用@Readonly注解声明;
  • 优化BaseEntity实体基类增添find、findFirst和findAll方法重载;
  • 数据实体生成器新增实体及属性命名过滤器接口, 允许为那些老旧数据库(命名不规范或有中文字段名等情况)自定义实体和字段名称;
  • 优化使其基础数据实体类内部对象在进行JSON序列化时将不被输出;
  • 优化实体基类的delete方法返回值逻辑;
  • 修正数据实体结果集处理器由于Oracle数据查询时返回的字段名是大写字符导致实体对象无法正确赋值的问题;
  • 优化JDBC操作器的异常日志输出以减少重复;
  • 为SQL类对象增加直接转换的toSQL方法,同时优化field方法降低字段前缀操作频次;
  • 修正ResultSet资源未关闭并移除无用的局部变量;
  • 修正类构造方法中未对参数进行赋值;

Web框架 (WebMVC)

  • 优化请求编码处理逻辑;
  • 优化JSON视图对象可以设置属性使用引号的开关方法;
  • 优化当加载本地语言参数值无效或解析错误时可能会导致异常的情况;
  • 调整将Cookie数据加解密返回的字节数组强制转为Base64编码;
  • 优化JsonView对象支持设置是否保留空值属性;
  • 防止WebMVC未成功初始化时导致的事件源对象为空的异常情况发生;
  • 优化WebMVC请求处理过程的日志输出;
  • 优化控制器请求解析器更完美支持RESTFul风格,可以通过参数request_mapping_parser_class=restful开启配置;
  • 优化CookieHelper的使用并调整其对value的加解密逻辑以及统一Base64方法的调用;

验证 (Validation)

  • 调整邮件地址验证器正则表达式使其支持后缀长度超过3位的域名;

缓存 (Cache)

  • 初步实现缓存锁相关逻辑;

日志 (Log)

  • 优化框架销毁时的日志输出可能产生空指针异常的情况;
  • 日志相关模块代码逻辑优化使其更好的将commons-logging和slf4j等日志系统与log4j进行融合;

One More Thing

YMP是一个非常简单、易用的轻量级Java应用开发框架,涵盖AOP、IoC、WebMVC、ORM、Validation、Plugin、Serv、Cache等特性,让开发工作像搭积木一样轻松是我们一直不懈努力的目标!

YMP不仅提供便捷的Web及其它Java项目的快速开发体验,也将不断提供更多丰富的项目实践经验。

文章转载自 开源中国社区 [http://www.oschina.net]

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
9天前
|
Java 数据库连接 Apache
java编程语言常用框架有哪些?
Java作为一种广泛使用的编程语言,拥有众多常用框架,这些框架帮助开发者提高开发效率和代码质量。
19 3
|
10天前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
27 2
|
11天前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
25 3
|
13天前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
47 5
|
16天前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
32 6
|
14天前
|
监控 Java 开发者
Spring Boot框架在java领域的优势
随着云计算、微服务架构的兴起,Java开发领域迫切需要一套高效、灵活且易于上手的框架来应对日益复杂的业务需求。正是在这样的背景下,Spring Boot应运而生,以其独特的魅力迅速成为了Java开发者手中的利器。
30 3
|
13天前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
17 2
|
15天前
|
安全 前端开发 Java
Java技术栈中的核心组件:Spring框架
Java作为一门成熟的编程语言,其生态系统拥有众多强大的组件和框架,其中Spring框架无疑是Java技术栈中最闪耀的明星之一。Spring框架为Java开发者提供了一套全面的编程和配置模型,极大地简化了企业级应用的开发流程。
25 1
|
9天前
|
Java 开发者
Java并发编程之Executor框架详解
【7月更文挑战第18天】本文旨在深入探讨Java中的Executor框架,揭示其对并发编程的优化作用。通过解析Executor接口、ThreadPoolExecutor和ScheduledExecutorService等关键组件,文章展示了如何有效管理和控制线程资源。同时,结合实例分析,本文阐释了Executor框架在提高程序性能、简化代码结构方面的实际应用价值。旨在为Java开发者提供并发编程的高级工具,帮助他们构建更加高效、稳定的多线程应用。
|
14天前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
【7月更文挑战第11天】页面对象模型(POM)通过Page Factory在Java Selenium测试中被应用,简化了代码维护。在POM中,每个网页对应一个Page Class,其中包含页面元素和相关操作。对比之下,非POM实现直接在测试脚本中处理元素定位和交互,代码可读性和可维护性较低。
14 0