当前位置:  软件>java软件

JAVA应用开发框架 YMP

    来源:    发布时间:2015-02-01

    本文导语:     YMP框架是什么?YMP(yMatePlatform)开发框架是一套轻量级的JAVA应用开发框架,开发初衷只是想按自己的编码习惯,尽量采用最简单的方式实现我需要的东西,达到简化工作任务、统一开发流程为目标,能够减轻一点点的工作...

   JAVA应用开发框架 YMP[图片]

YMP框架是什么?

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

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

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

YMP框架有哪些特性?
  • 统一配置体系结构,为开发中所需配置文件提供统一的生命周期管理;

  • 系统与业务的日志分离,按功能或模块进行日志存储并可采用多线程写方式以降低I/O成本;

  • 插件机制,支持模块化开发与部署;

  • MVC分层体系,配置简单,可扩展,易维护,支持零配置,不依赖容器,多种视图支持,支持事件及异常接口扩展并整合插件特性;

  • 轻量级JDBC封装,多数据源、单实体ORM封装,支持MySQL、Oracle和SQL 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、JSP、JSON、Freemarker、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接口,开发自定义模块,并将其添加到配置文件的模块加载列表中即可;

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


    
 
 

您可能感兴趣的文章:

  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • Java企业应用开发框架 Portofino
  • Java模块化应用开发框架 JTheque
  • 开发java应用,用什么开发工具好呢?
  • 没分:永中office是不是java应用开发的杰作,立即下载!一看究竟!
  • Java GUI应用程序开发框架 Axualize
  • 请问:Java开发数据库应用软件合适吗?
  • Java的Web应用开发框架 InfoGrid
  • Java EE 应用开发平台 Koala
  • 用Java开发多文档应用程序
  • linux下用什么工具来开发java应用程序合适点
  • 开发android应用程序时,用java调用so库输出日志问题
  • 请教高手:是否使用PowerJ开发过JAVA应用? 效果如何?
  • 用java开发应用程序,能否形成.exe文件?
  • JBuilder7开发java应用程序,其移植性如何?
  • 请问如何用JAVA开发分布式应用?送分决不食言
  • 怎样学习Java,目的是做J2EE应用开发!/***** +80 *****/
  • 安卓应用开发通过java调用c++ jni的图文使用方法
  • 公司要让有一年Delphi开发经验的我改用JAVA开发应用程序,也就是Application,而且是有一定规模的,原来Delphi代码就30万行,心烦,放分
  • 用Jbuilder开发java程序时如何做成.exe应用程序呢?
  • java中Spring框架介绍及如何实现对Bean的管理
  • Java批量作业框架 Java Batch Job Framework
  • java 框架Hibernate的generator属性的七种class介绍
  • Java神经网络框架 Encog for Java
  • Java简易MVC框架 etmvc
  • Java Web开发框架 Chrysalis
  • Java神经网络框架 Neuroph
  • Java图像处理框架 Marvin
  • Java媒体框架 JMF
  • Java的Web应用框架 EvaServer
  • Java 应用自动更新框架 Jupidator
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 不太明白,利用RMI实现JAVA分布式应用 和 EJB实现JAVA分布式应用有什么区别。
  • 如何设置java应用程序的风格,如java风格,和windows风格!
  • Java应用服务器 Virgo
  • JAVA桌面应用服务器 JDAP
  • Java与桌面应用程序
  • Java应用漏洞检测工具 LAPSE+
  • 讨论:Java是否适合编写通常的应用程序?
  • 怎样让java应用程序独立运行?
  • 求教!!!VC应用调用Java模块可行吗?
  • Java 应用服务器 WildFly
  • Web应用框架 Pulse-java
  • 求JAVA的具体应用
  • 请问如何通过telnet的方式启动服务器(solaris)上的用.sh角本方式启动java写的应用程序,在退出telnet时服务器上的应用程序不会退出?
  • Java 应用程序维护工具 MaintainJ
  • 只考虑WEB应用, JAVA适合吗? 除了IIS, 我还能让什么东西来支持我的ASP? JAVA有关的东东有没有好办法?
  • Java 应用服务器 Enhydra
  • Java™ Web 应用程序框架 Sitebricks
  • Java 数据库应用层 JDAL
  • Java应用启动工具 Commons Launcher
  • 纯Java的GIS应用程序 OrbisGIS
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3