Java 应用开发框架 YMP

YMP Java 应用开发框架

Apache
Java 查看源码»
跨平台
2013-09-14
有理想的鱼

 

LOGO

YMP是一个非常简单、易用的一套轻量级JAVA应用开发框架,设计原则主要侧重于简化工作任务、规范开发流程、提高开发效率,让开发工作像搭积木一样轻松是我们一直不懈努力的目标!

主要技术特点

  • 采用组件化、模块化打包方式,可按需装配,灵活可扩展;

  • 采用微内核实现Autoscan、AOP、IoC、Event等,涵盖SSH框架中绝大部分核心功能;

  • 统一配置体系结构,感受不一样的文件资源配置及管理模式;

  • 整合多种日志系统(log4j、jcl、slf4j)、日志文件可分离存储;

  • 轻量级持久化层封装,针对RDBMS(MySQL、SQLServer、Oracle等)和NoSQL(MongoDB、Redis等)提供支持;

  • 完善的插件机制,助力于更细颗粒度的业务拆分;

  • 独特的独立服务开发体验;

  • 功能强大的验证框架,完全基于Java注解,易于使用和扩展;

  • 灵活的缓存服务,支持EhCache、Redis和多级缓存(MultiLevel)技术;

  • 配置简单的MVC架构,强大且易于维护和扩展,支持RESTful风格,支持JSP、HTML、Binary、Freemarker、Velocity等多种视图技术;

模块及功能

YMP框架主要是由框架核心(Core)和若干模块(Modules)组成,整体结构非常简约、清晰,如图所示:

Structure

框架核心(Core)

主要负责框架的初始化和模块的加载及其生命周期管理,功能包括:

  • 类对象管理器:提供包类的自动扫描以及Bean生命周期管理、依赖注入和方法拦截等特性;

  • 事件服务:通过事件注册和广播的方式触发和监听事件动作,并支持同步和异步两种模式执行事件队列;

  • 模块:是YMP框架所有功能特性封装的基础形式,负责模块的生命周期管理;

  • 国际化资源管理器:提供统一的资源文件加载、销毁和内容读取,支持自定义资源加载和语言变化的事件监听;

  • 另外,提供了一组自定义的数据结构和框架中需要的各种工具类;

了解更多...

配置体系(Configuration)

通过简单的目录结构实现在项目开发以及维护过程中,对配置等各种文件资源的统一管理,为模块化开发和部署提供灵活的、简单有效的解决方案:

  • 规范模块化开发流程、统一资源文件管理;

  • 具备有效的资源重用和灵活的系统集成构建、部署和数据备份与迁移等优势;

  • 简单的配置文件检索、加载及管理模式;

  • 模块间资源共享,模块可以共用所属项目的配置、类和jar包等资源文件;

  • 默认支持XML和Properties配置文件解析,可以通过IConfigurationProvider接口自定义文件格式,支持缓存,避免重复加载;

  • 配置对象支持注解方式声明,无需编码即可自动加载并填充配置内容到类对象;

  • 集成模块的构建与分发、服务的启动与停止*,以及清晰的资源文件分类结构可快速定位;

了解更多...

日志(Log)

基于开源日志框架Log4J 2实现,提供对日志记录器对象的统一管理,可以在任意位置调用任意日志记录器输出日志,实现系统与业务日志的分离,并针对apache-commons-logging日志框架和slf4j日志系统提供支持;

了解更多...

持久化(Persistence)

JDBC

针对关系型数据库(RDBMS)数据存取的一套简单解决方案,主要关注数据存取的效率、易用性和透明,其具备以下功能特征:

  • 基于JDBC框架API进行轻量封装,结构简单、便于开发、调试和维护;

  • 优化批量数据更新、标准化结果集、预编译SQL语句处理;

  • 支持单实体ORM操作,无需编写SQL语句;

  • 提供脚手架工具,快速生成数据实体类,支持链式调用;

  • 支持结果集与值对象的自动装配,支持自定义装配规则;

  • 支持多数据源,默认支持C3P0、DBCP、JNDI连接池配置,支持数据源扩展;

  • 支持多种数据库(如:Oracle、MySQL、SQLServer等);

  • 支持面向对象的数据库查询封装,有助于减少或降低程序编译期错误;

  • 支持数据库事务嵌套;

  • 支持数据库存储过程*;

了解更多...

MongoDB

针对MongoDB的数据存取操作的特点,以JDBC模块的设计思想进行简单封装,采用会话机制,支持多数据源配置和实体操作、基于对象查询、MapReduce、GridFS、聚合及函数表达式集成等,仍需进一步完善改进,文档整理中,敬请期待...

Redis

基于Jedis驱动封装,采用会话机制,支持多数据源及连接池配置,仍需进一步完善改进,文档整理中,敬请期待...

插件(Plugin)

采用独立的ClassLoader类加载器来管理私有JAR包、类、资源文件等,设计目标是在接口开发模式下,将需求进行更细颗粒度拆分,从而达到一个理想化可重用代码的封装形态;

每个插件都是封闭的世界,插件与外界之间沟通的唯一方法是通过业务接口调用,管理这些插件的容器被称之为插件工厂,负责插件的分析、加载和初始化,以及插件的生命周期管理,插件模块支持创建多个插件工厂实例,工厂对象之间完全独立,无任何依赖关系;

了解更多...

服务(Serv)

一套基于NIO实现的通讯服务框架,提供TCP、UDP协议的客户端与服务端封装,灵活的消息监听与消息内容编/解码,简约的配置使二次开发更加便捷;

同时默认提供断线重连、链路维护(心跳)等服务支持,您只需了解业务即可轻松完成开发工作。

了解更多...

验证(Validation)

服务端参数有效性验证工具,采用注解声明方式配置验证规则,更简单、更直观、更友好,支持方法参数和类成员属性验证,支持验证结果国际化I18N资源绑定,支持自定义验证器,支持多种验证模式;

了解更多...

缓存(Cache)

以EhCache作为默认JVM进程内缓存服务,通过整合外部Redis服务实现多级缓存(MultiLevel)的轻量级缓存框架,并与YMP框架深度集成(支持针对类方法的缓存,可以根据方法参数值进行缓存),灵活的配置、易于使用和扩展;

了解更多...

WebMVC框架

WebMVC模块在YMP框架中是除了JDBC模块以外的另一个非常重要的模块,集成了YMP框架的诸多特性,在功能结构的设计和使用方法上依然保持一贯的简单风格,同时也继承了主流MVC框架的基因,对于了解和熟悉SSH等框架技术的开发人员来说,上手极其容易,毫无学习成本。

其主要功能特性如下:

  • 标准MVC实现,结构清晰,完全基于注解方式配置简单;

  • 支持约定模式,无需编写控制器代码,直接匹配并执行视图;

  • 支持多种视图技术(JSP、Freemarker、Velocity、Text、HTML、JSON、Binary、Forward、Redirect、HttpStatus等);

  • 支持RESTful模式及URL风格;

  • 支持请求参数与控制器方法参数的自动绑定;

  • 支持参数有效性验证;

  • 支持控制器方法的拦截;

  • 支持注解配置控制器请求路由映射;

  • 支持自动扫描控制器类并注册;

  • 支持事件和异常的自定义处理;

  • 支持I18N资源国际化;

  • 支持控制器方法和视图缓存;

  • 支持控制器参数转义;

  • 支持插件扩展;

了解更多...

相关阅读

One More Thing

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

感兴趣的小伙伴儿们可以加入 官方QQ群480374360,一起交流学习,帮助YMP成长!

了解更多有关YMP框架的内容,请访问官网:http://www.ymate.net/

 

 

加载中

评论(8)

有理想的鱼
有理想的鱼
#YMP# [视频] CentOS服务器应用实战——服务环境快速搭建 http://v.youku.com/v_show/id_XMzYxODg1NTYxMg==.html?spm=a2h3j.8428770.3416059.1
红白机
红白机
#YMP#文档不丰富啊。
a
atfa
参照教程,该编译的也编译了,但是idea仍然提示2.0-snapshot的依赖库是红色的。难道就这样了?
MartinBockZhu
MartinBockZhu
MARK #YMP#
Z
ZinChen
你好,请问该框架的插件是不是不能在运行时动态加载? #YMP#
jayxlg
jayxlg
你好,关于框架的使用有没有更详细的说明啊。public <T> List<T> findAll(String sql, IResultSetHandler<T> handler, Object[] params)这个是怎么使用的呢? #YMP#
瓽
看了下代码,你的理论我觉得不错,代码规范非常强,但上手还是有难度,希望能更详细的将程序结构以及用法进行说明。 YMP
朝天放歌
朝天放歌
有.net版本的不? YMP
有理想的鱼
有理想的鱼
YMP 调整持久层框架代码结构,增加对MongoDB的支持(完善ing),代码结构调整对历史版本(Tag:v0.1a​)有较大影响;

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

YMP v2.0.5 发布了。本次版本更新主要是新增若干新特性、增加对Beetl模板引擎的支持,同时针对框架问题修复、移除编译警告及性能优化,并对依赖包升级更新。 YMP是一个非常简单、易用的轻量级...

04/25 08:59

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

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

2017/12/29 11:11

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

YMP v2.0.3 发布了。本次版本主要是优化更新,新版本已提交至Maven中央库,可以通过以下配置获取各模块依赖: <dependency>     <groupId>net.ymate.platform</groupId>     <arti...

2017/11/03 07:52

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

本次版本更新主要针对性能优化、BUG修复以及增添了更易于使用的新特性. 新版本已提交至Maven中央库,可以通过以下配置获取各模块依赖: <dependency>     <groupId>net.ymate.platform...

2017/09/11 08:05

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

本次版本更新主要针对YMP框架的易用、稳定、安全性等方面的性能优化及BUG修复。 更多相关模块工程也会陆续更新,更多模块请参看:YMP v2.0 模块项目集中发布!第一波! 欢迎访问YMP框架码云主...

2017/06/06 09:10

YMP v2.0 模块项目集中发布!第一波!

经过很长时间的准备,将项目中用到的一些比较实用的模块进行提取重构,释放出来与大家分享! 如果她对你有帮助,也希望不吝收藏、点赞!当然,请我们喝杯咖啡也是好滴嘛 :p! 更希望大家多多...

2017/05/08 17:20

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

自YMP v2.0GA版本发布至今,在经历近一年时间不断的优化完善,今天,正式发布YMP v2.0.0版! YMP是一个非常简单、易用的轻量级Java应用开发框架,涵盖AOP、IoC、WebMVC、ORM、Validation、P...

2017/02/07 08:31

YMP v2发布,轻量级Web开发框架

YMP v2——轻量级JAVA应用开发框架 YMP是一个非常简单、易用的一套轻量级JAVA应用开发框架,设计原则主要侧重于简化工作任务、规范开发流程、提高开发效率,让开发工作像搭积木一样轻松是我们...

2016/02/18 10:57

YMP v1.0 发布,轻量级 Web 开发框架

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

2014/10/25 10:53

没有更多内容

加载失败,请刷新页面

没有更多内容

1
回答
ymp框架mysql 视图

@ROBOCOP 你好,想跟你请教个问题: ymp框架读取mysql 视图的数据实体类ID是怎么设置的。mysql的视图 并没有id这个字段! 急~~!!

2015/05/05 14:04
2
回答
多个数据源的配置问题

@ROBOCOP 你好,想跟你请教个问题: 你好,我在使用ymp框架的时候有个疑问:在多个数据源的时候,配置了数据表的前缀,但是第二个数据源前缀与之不一样...

YMP
2015/03/10 15:33

没有更多内容

加载失败,请刷新页面

没有更多内容

YMP框架学习笔记(二)------基于YMP框架搭建WEB应用程序

基于YMP框架搭建WEB应用程序的步骤!

2014/07/01 13:52
990
0
YMP框架学习笔记(一)------Maven部署与YMP框架签出

最近开始系统化学习YMP框架,学习笔记将以博客形式连载更新! 本篇笔记内容:Maven部署与YMP框架签出过程

2014/07/01 09:58
355
0
Linux服务器应用实战——服务环境快速搭建

基于CentOS操作系统如何快速搭建包括GIT、Maven、Tomcat、Java、MySQL和Nginx等服务环境,如何基于YMP架框脚手架工具快速创建独立JVM的Tomcat服务...

2015/10/21 23:59
410
2

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部