上周在Javaeye论坛看到一个帖子,讨论楼主自己开发的框架和hibernate框架的对比,其实说起来,我蛮同情楼主的,毕竟现在在大家眼里面,hibernate,ibatis,spring 等框架都是超级NB的。都已懂这些开源框架的某些特性而沾沾自喜,其实大家都明白,我们需要的是什么,我们需要一个简单易用,代码容易读,可以轻易理解其功能和原理,而且易用强劲,能解决我们的问题,在系统运行过程中遇到问题,在我们的可控范围内,这样的项目,我想应该是大家想用的,但是问题又来了,现在每个人都在用hibernate,如果你用torque,难保有人会鄙视你,如果你用Hivemind来替代spring,我想肯定会有人说你不懂潮流。
其实我个人觉得,一些小型的应用,比如简单的网站,用用dbutils就足够了。hibernate的强大所带来的问题就是太复杂,毕竟功能多了,那么多的配置文件,让初学者看文档掌握hibernate,我想没几个人能看下去,即使是看源代码,也会看的一头雾水,我看过hibernate源代码好多次,每次都没法完全理解那些接口的用处,当然每次的阅读,我都能得到很多东西,当然现在我也同样有很多地方的代码看不懂,可能我水平太差了。
言归正传,在javaeye论坛里面的那个帖子,貌似楼主公司有个开发框架,叫zving,功能很简单,可以满足一般小的应用的开发,就是因为他说了一句,hibernate不好用,拿他的东东跟hibernate比,结果被骂的很惨,哎,我搞不懂为什么现在的人都这样,我们会用spring,会用hibernate,为什么我们不开发一个跟它一样的东西呢,虽然大家都说造轮子是傻瓜,但是话说回来,你会用人家开源,并不代表你有那个能力做出那样的开源,我感觉适当的时候,造轮子总是应该的,毕竟自己造的轮子,用的放心。
今天我在sourceforge注册了一个项目JDF(Java Develop Framework),可能大家就冲这个名字就要给我扔鸡蛋了,不过没关系,这不还没开始了嘛,我会把这个项目的开发的过程,以及想法,以及一些代码片段记录到博客上面,我想大家可以通过这个学到很多东西。
我打算JDF的内容包括:
数据库层,要求每个表包括 DELFLAG,OP_ID, CREATE_DATE,UPDATE_DATE 四个字段。
可能是由于我对数据的要求比较高吧,这里删除分为物理删除和逻辑删除,物理删除是把记录删除,逻辑删除是更新DELFLAG字段的值。OP_ID是记录这条记录的用户的ID,CREATE_DATE 数据创建时间,UPDATE_DATE 数据更新时间。
每个表可以设置是否设置历史表,历史表负责每条记录的修改记录的备份,对于数据审计要求较高,我想一般的应用,对数据的要求都是越来越高的,数据原则上是不能轻易删除的。
or-mapping ,包括数据的联动读取,联动保存,数据更新的时候,只更新已修改的字段。这里的bean用工具自动生成,由于不想做hibernate那种配置文件那种,因为配置文件对于用户来说,是很头疼的事情,所以bean里面会包含很多内容。
sql-builder,根据bean,生成相应的sql操作代码。支持数据分页读取。
jdbc 接口代理,记录数据库sql,绑定变量,以及sql的执行时间。
数据库连接池,类池,对象池,以及简单的缓存框架,缓存一些小表数据。
利用CGLIB动态的代理类,获取监控数据。
支持多数据库操作,支持一个系统用多个数据库,比如在电信系统里面,一个系统后台会对应多个数据库。
支持分表的处理(只建一个bean)。
按系统标准的开发方式,可以直接把项目的服务层打包成EJB,利用EJB打包工具,直接把应用系统打包成EJB,全面支持JTA,XA,支持直接把服务层打包成webservice。 可以打包支持各种主流中间件的发布。
希望大家有啥好的想法,可以一起讨论,项目马上启动。由于精力和时间,无法开发对应的WEB框架。
分享到:
相关推荐
本源码提供了一个基于Java的开源商城JAVA首选商城框架设计。项目包含3885个文件,其中包括1010个Java源文件、886个JavaScript文件、371个Vue文件、299个TypeScript文件、207个CSS样式文件、185个Less样式文件、148个...
Spring 框架是一个开源的框架,是为了解决企业应用程序开发复杂性而创建的。Spring 框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 框架的...
tosaas 开发框架是一款通用的 saas 开发框架,能快速的将传统单企业应用转化成saas多租户模式,支持大数据存储高并发访问,支持无限水平扩展存储服务器、应用服务器数量,经受过百万级用户的实际应用考验。
本资源提供了111个Java项目的开源源码,涵盖了各种Java项目类型,包括Web开发、移动应用开发、桌面应用开发等。这些源码可以作为学习Java编程的参考资源,也可以作为实际项目开发的基础。 Java项目类型 从源码中...
(Kotlin语言对Java语言和类库兼容性良好,且对于空指针更为安全) web管理服务被移除。(安全增强,技术堆栈精简) 启动服务器可通过参数决定是否同时启动管理GUI,GUI由JavaFX实现。(易用性增强) web交易页面被...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
这个项目的源码提供了一次难得的学习机会,开发者可以深入了解如何使用Java和相关框架来构建一个完整的WMS系统,从而提升自己的技能和经验。同时,数据库备份文件确保了系统的数据完整性,便于在出现问题时进行恢复...
基于Java开源框架的PDM系统构建及应用是当前制造业的一种趋势,旨在解决PDM系统设计复杂性和实施的动态特性问题。为了满足用户对产品多样化和个性化的需求,本文研究了基于Java开源框架的PDM系统构建技术和应用。 1...
Spring 是一个全面的企业级应用框架,主要目标是简化Java EE(现在称为Java EE)的开发。它通过Inversion of Control (IoC)和依赖注入(DI)理念,降低了组件之间的耦合。Spring框架的核心包括: - **IoC 容器**:...
该系统是一个使用Java语言开发,以国内开源Web MVC框架EasyJWeb作系统引擎的Java Web应用系统.系统主要实现的功能有订单录入、打印,销售汇总、原料管理、客户管理、生产配料计算、报表打印、汇总、系统数据管理及...
对于提供的"Java项目开源源码2023最新资源.docx"文件,这是一个可能包含项目列表、介绍或指南的文档。打开这个文档,你可以找到具体的项目链接,从而开始你的学习之旅。务必充分利用这些宝贵的资源,它们将是你成为...
该系统是一个使用Java语言开发,以国内开源Web MVC框架EasyJWeb作系统引擎的Java Web应用系统.系统主要实现的功能有订单录入、打印,销售汇总、原料管理、客户管理、生产配料计算、报表打印、汇总、系统数据管理及...
【Java文件同步开源项目Sync】是一个基于Java语言开发的实用工具,主要目的是提供高效、可靠的文件和目录同步功能。这个开源项目为开发者提供了一个简单易用的命令行接口,允许用户方便地对本地或远程文件系统进行...
Ujorm 它是一个高性能的开源Java ORM框架,尤其针对持久层的快速开发,在搜索查询的测试中,Ujorm的运行速度比其他竞争产品要快很多。 Ujorm在很多方面展开创新,在和Hibernate的比较中,Ujorm也拥有一些优势。...
接着,WebWork是一个开源的J2EE Web框架,由OpenSymphony组织开发。它使用拉出式(Pull-Style)的MVC模式,专注于组件化和代码重用。在WebWork 2.2版本中,添加了对AJAX技术的支持,这一支持建立在DWR(Direct Web ...
webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发。webmagic的核心非常简单,但是覆盖爬虫的整个流程,也是很好的学习爬虫开发的材料。webmagic是一个开源的Java垂直...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
Java是一种广泛应用的编程语言,它有着庞大的开源社区和丰富的知识体系。本文档汇总了各种Java开源项目,涵盖了Java教程、Java实战、系统设计、devops、工具等方面的知识点。 Java教程 * JavaGuide:Java教程,...
Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
Spring是一个开源的Java框架