YMP 轻量级JAVA开发框架

YMP框架是什么?

YMP(yMatePlatform)开发框架是一套轻量级的Java应用开发框架,开发初衷只是想按自己的编码习惯,尽量采用最简单的方式实现我需要的东西,达到简化工作任务、统一开发流程为目标,能够减轻一点点的工作压力,让开发变成快乐的事!

在开发过程中,参考了很多优秀的开源项目,如:HibernateStruts、Struts2、iBATISDbUtilsSpring JDBC、String MVC等等,它们都太优秀、太强大也太复杂了,但针对于我所参与的项目来说,有些特性基本无用武之地,反倒成了“累赘”,因此我决定冒天下之大不韪,去掉 “累赘”重新造轮子,就这样YMP诞生了!

知识需要共享,我们才能进步,开源才是技术发展的力量源泉,我尊重开源,热爱分享,理解劳动为我们带来的价值,个人的力量始终有限,希望大家能够通过了解更多的开源技术,掌握更多的知识,让我们一起交流心得!

YMP框架有哪些特性?

  • 统一配置体系结构,为开发中所需配置文件提供统一的生命周期管理;
  • 系统与业务的日志分离,按功能或模块进行日志存储并可采用多线程写方式以降低I/O成本;
  • 插件机制,支持模块化开发与部署;
  • MVC分层体系,配置简单,可扩展,易维护,支持零配置,不依赖容器,多种视图支持,支持事件及异常接口扩展并整合插件特性;
  • 轻量级JDBC封装,多数据源、单实体ORM封装,支持MysqlOracleSQL Server等数据库,支持存储过程调用和编码方式定义复杂的组合查询;
  • 新增MongoDB支持,接口方法采用与JDBC风格一致;
  • 支持方法、请求参数绑定与验证,减少人工干预,灵活的验证器扩展接口;
  • 框架模块化加载,支持自定义模块,统一文件配置,简单、灵活;

YMP框架模块功能介绍

配置体系模块

配置体系模块,是一套简单的结构化开发模式,目的是让开发流程统一和规范,提供模块化开发和集成部署能力的解决方案;

配置体系结构按优先级由低到高划分三层,即:全局->项目->模块,其特性如下:

  • 统一配置文件检索、加载方式;
  • 模块间配置等资源共享:相同项目下各模块可以共用项目级公共配置、类和jar包等资源文件;
  • 配置文件类型可通过IConfiguRATionProvider进行扩展、支持缓存,避免重复加载;
  • 配置文件可自动填充到实现IConfiguration接口的配置对象,支持Annotation注解方式声明;
  • 集成模块的构建(编译)与分发、服务的启动与停止,以及清晰的资源文件分类结构可快速定位;

配置体系结构从开发角度解决了模块化开发流程和规范的统一、资源文件的生命周期管理;从维护角度解决了模块化集中式管理,将全部资源集成在整个体系中,其具备有效的资源重用和灵活的系统集成构建、部署和数据备份与迁移等特点;

更多内容参见:配置体系模块使用详解

日志模块

基于Log4j开源日志框架实现,采用XML文件配置日志记录器,对日志记录器对象提供统一生命周期管理,开发过程可以在任意位置调用任日志记录器输出日志,实现系统与业务日志的分离;

框架目前提供了两种日志记录器扩展实现,分别是:

  • DefaultLog4JLogger:标准日志记录器;
  • AsyncLog4JLogger:异步日志记录器,每个日志记录器均采用独立线程进行日志内容输出,避免日志输出阻塞业务代码执行;

更多内容参见:日志模块使用详解

插件模块

插件模块的设计目标是为了在接口开发模式下,可以将任务划分更细颗粒度,可以通过插件灵活变更接口实现;

由于插件采用独立的ClassLoader类加载器来管理私有jar包、类、资源文件等,所以插件之间的调用依赖业务接口;

插件工厂类负责分析、加载和初始化,插件是单例的,即所有可装载的插件在加载后被实例化并由插件工厂维护其生命周期;

更多内容参见:插件模块使用详解

MVC模块

MVC模块是一个基于模型、试图和控制器的抽象框架层,在抽象框架基础上分别面向Web应用开发(WebMVC)和面向独立服务程序 (ServerMVC)开发提供了扩展支持,使两种应用场景均采用统一的开发模式,即通过简单的配置调整,两种场景的代码可以通用,从而达到降低学习、开 发的成本,其具备以下功能特征:

MVC模块提供了、注册和,并与插件模块整合,

  • 支持控制器方法请求路由映射及拦截器、控制器的自动扫描、注册;
  • 支持自定义异常及事件处理;
  • 支持插件;
  • 标准MVC实现,结构清晰、配置简单,完全基于Annotation注解方式配置;
  • 支持零配置(Convention Model,无需编写控制器代码,直接匹配并执行视图);
  • WebMVC支持多种视图技术,包括:HTML、JSPJSONFreeMarker、Binary、HTTPStatus、Redirect和Forward等;
  • WebMVC支持REST风格URL模式;
  • 支持请求参数与控制器方法绑定;
  • 支持请求参数有效性验证;
  • 支持控制器方法的请求拦截;

更多内容参见:MVC模块使用详解

持久化模块

持久化模块目前基于JDBC框架API进行轻量封装,针对关系型数据库(RDBMS)数据存取的一套简单解决方案,主要关注数据存取的效率、易用性和透明,其具备以下功能特征:

  • 封装JDBC 低级API,结构简单、便于开发、调试和维护;
  • 支持数据的批量更新,支持数据库存储过程的操作,支持标准化的结果集处理,预编译 SQL 语句处理;
  • 支持单数据表CRUD等方便操作,无需编写SQL 语句;
  • 支持结果集与值对象的自动装配,并可通过IResultSetHandler接口自定义装配规则;
  • 可动态配置数据源,支持通过JNDI 调用容器数据源及多数据源支持;
  • 通过IDataSourceAdapter接口可自定义数据源、连接池配置;
  • 支持常见数据库(如:Oracle、MySQL 、SQL Server等)的数据分页查询;
  • 支持Dao设计模式;
  • 支持编码方式自定义多表关联组合查询*;
  • 支持JDBC事务嵌套;

更多内容参见:持久化模块使用详解

验证模块

验证模块是参数有效性验证工具,对类方法的参数通过Annotation注解方式声明其验证规则,返回验证结果,并支持I18N;

通过实现IValidaTor接口或继承AbsTractValidator类,可自定义验证器并注册到验证模块;

更多内容参见:验证模块使用详解

模块管理器

模块管理器负责YMP框架各模块的加载、初始化工作,模块的加载顺序、参数配置等均由ymp-conf.propertIEs文件统一配置,请阅读框架初始化配置文件详细说明

用户可以通过实现IModule接口,开发自定义模块,并将其添加到配置文件的模块加载列表中即可;

更多内容参见:模块管理器使用详解

YMP v2.0.4 发布,轻量级 Java 应用开发框架
YMP v2.0.4 发布了。本次版本更新主要针对框架的性能优化及BUG修复,并对依赖包升级更新,新版本已提交至Maven中央库,可以通过以下配置获取各模块依赖:

发布于 2017-12-29 04:01:22 | 117 次阅读

YMP v2.0.3 发布,轻量级 Java 应用开发框架
YMP v2.0.3 发布了。本次版本主要是优化更新,新版本已提交至Maven中央库,可以通过以下配置获取各模块依赖:     net.ymate.platform     ymate-platform-  

发布于 2017-11-03 01:01:56 | 152 次阅读

YMP Maven 扩展工具 v1.0 发布,快速搭建 Java 项目
YMP-Maven-Extension(YMP Maven扩展工具)帮助您快速搭建基于YMP框架的各种Java工程结构的Maven扩展工具集合,主要包括项目模板和Maven插件命令两部分。YMP框架项目地址:https://gitee.com/suninformation/ymate-platform-v21、项目模板目前提供以下4种项目模板:ymate-archetype-quickstart (quickstart):标准Java工程

发布于 2017-11-03 00:58:54 | 82 次阅读

YMP v2.0.2 发布,轻量级 Java 应用开发框架
本次版本更新主要针对性能优化、BUG修复以及增添了更易于使用的新特性.新版本已提交至Maven中央库,可以通过以下配置获取各模块依赖:

发布于 2017-09-11 00:54:39 | 95 次阅读

YMP v2.0.1 发布,轻量级 Java 应用开发框架
本次版本更新主要针对YMP框架的易用、稳定、安全性等方面的性能优化及BUG修复。更多相关模块工程也会陆续更新,更多模块请参看:YMP v2.0 模块项目集中发布!第一波!欢迎访问YMP框架码云主页:https://git.oschina.net/suninformation新版本已提交至Maven中央库,可以通过以下配置获取各模块依赖: &n

发布于 2017-06-06 03:02:03 | 153 次阅读

YMP v2.0 模块项目集中发布!第一波!
经过很长时间的准备,将项目中用到的一些比较实用的模块进行提取重构,释放出来与大家分享!如果她对你有帮助,也希望不吝收藏、点赞!当然,请我们喝杯咖啡也是好滴嘛 :p!更希望大家多多关注YMP开源项目,在不改变编码习惯的同时,以简单、直接的方式解决问题,还会带给你似曾相识的感觉,不妨试试看,也许你会对她说:“

发布于 2017-05-08 10:22:47 | 216 次阅读

YMP v2.0.0 发布,轻量级 Java 应用开发框架
自YMP v2.0GA版本发布至今,在经历近一年时间不断的优化完善,今天,正式发布YMP v2.0.0版!YMP是一个非常简单、易用的轻量级Java应用开发框架,涵盖AOP、IoC、WebMVC、ORM、Validation、Plugin、Serv、Cache等特性,让开发工作像搭积木一样轻松是我们一直不懈努力的目标!新版本已提交至Maven中央库,可以通过以下配置获取

发布于 2017-02-07 01:28:58 | 210 次阅读

YMP v2发布,轻量级Web开发框架
YMP v2——轻量级JAVA应用开发框架 YMP是一个非常简单、易用的一套轻量级JAVA应用开发框架,设计原则主要侧重于简化工作任务、规范开发流程、提高开发效率,让开发工作像搭积木一样轻松是我们一直不懈努力的目标! 主要技术特点 采用组件化、模块化打包方式,可按需装配,灵活可扩展;

发布于 2016-02-19 00:27:42 | 314 次阅读

YMP v1.0 发布,轻量级 Web 开发框架
轻量级的Web应用开发框架YMP正式发布v1.0版本! 在经历了近一年时间实际公司项目环境下测试和迭代,优化和修复了若干问题,提高YMP框架代码的成熟度和稳定性。变更详情点击:http://git.oschina.net/suninformation/ymateplatform/commits/mas

发布于 2014-10-25 03:23:57 | 196 次阅读


Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务