AnyFo实用开源项目汇总
以下文档来自Anyfo开源组织http://www.anyfo-life.com/ ,版权归Anyfo开源组织所有,这里仅用于收藏,方便在线查阅。 开源项目: AnyFo - Janet :通用并发线程池 AnyFo - Util - AnyFoDao :Spring + Hibernate整合通用的DAO层类 AnyFo - Util - Dyn
开源项目:
AnyFo - Util - AnyFoDao :Spring + Hibernate整合通用的DAO层类
AnyFo - Util - DynaObject :专门创建动态对象的工具
AnyFo - Util - Json4Ext:通用ExtJS数据交换处理
AnyFo - Utils - XmlManager :通用解析XML文件
AnyFo - Util - AnyFoAction :对Struts2.0中的控制器提供方便的操作
AnyFo - EricSofa:专门用于C/S结构的网络服务器中间件
以下是简介:
开源项目:
AnyFo - Janet
Janet背景
在各种系统中,都有可能会由程序自动的启动多条线程,但是,如果程序在同一个极短的时间内启动太多线程,一方面操作系统对线程数量有限制,一方面多个并发线程会占用大 量的CPU,并且,每次在要启动线程时临时去创建线程的实例,极大的占用了系统运行的时间,造成系统运行效率降低,因此,我们需要一个线程池。于是AnyFo – Janet出现了。
Janet简介
AnyFo – Janet是一个线程池,能为任何系统提供线程的管理功能,它能为程序带来:
1. 在同一个应用程序中,限制同一时间进程中的线程数量,保护系统
2. 在系统并发启动很多线程时,能够缓解CPU压力,相对均衡的分担CPU的时间片
3. 省略系统创造线程实例的时间,系统能够直接获取预先创建好的线程,提供运行效率
4. 线程的回收完全自动化,无需用户管理
5. 同时支持对绑定不同的Runnable任务类的多种线程的统一管理
6. 调用极为方便,尽提供一个getThread方法就完全满足程序需要
7. 配置极为简单
AnyFo - Util - AnyFoDao :Spring + Hibernate整合通用的DAO层类
AnyFo - Util - AnyFoDao
AnyFoDao介绍
AnyFoDao是AnyFo - Util下的一个子项目,其中只包含一个类,这个类是一个通用的DAO层类,这里包含了一个普通系统的DAO层的各种功 能,所以,在开发时,大家不用多次在各个模块开发DAO层的类了,各个模块共用这个公共的DAO类即可。
本类封装了Spring提供的HibernateTemplate,从提供了对数据的各种操作,因此,本类尤其适合用Spring + Hibernate整合后进行系统开 发时使用。
AnyFoAction功能概述
AnyFoDao中的那个类,提供多个方法来对数据库实现方便而通用的底层操作,这些方法能提供的功能大致如下:
1.普通的增删该查数据
2.分页数据查询
3.以某字段为条件的查询
4.以某字段为条件的统计
AnyFo - Util - DynaObject :专门创建动态对象的工具
AnyFo - Util - DynaObject
DynaObject项目背景
在Java中,如果一个程序加载了某个类,当程序退出前,如果你修改了类的源码,然后重新编译了新的.class文件来覆盖老的.class文件 ,这个新的.class文件不会被再次加载到程序中,那么,修改后的效果并不能立刻反映出来,这样的类加载方式称之为“静态加载”;那么,如果要在程序退出之前能动态的实时 加载修改后编译出来的新的.class文件中的效果,则需要创建动态对象,如同Tomcat中的热部署效果一样。
于是,专门创建动态对象的工具包DynaObject产生了。
DynaObject简介
DynaObject是AnyFo – Util下的一个子项目,其中提供了一个类,是用来专门创建动态对象的,调用本类的createInstance方法,就能返 回一个动态对象。
AnyFo - Util - Json4Ext:通用ExtJS数据交换处理
AnyFo - Util - Json4Ext
Json4Ext项目背景
在大家开发的系统中,如果程序用ExtJS做表现层,那么就需要使ExtJS开发的界面和后台Java代码中生成的数据交互,一般来说,可以选 择XML格式和Json格式的数据进行交互,但是XML格式的数据操作相对繁琐,因此,大部分开发会选择Json格式的数据进行交互,因此,我们的程序在后台需要把要返回前台的数据 拼接成Json格式的字符串,然后再发回前台。
但是,在拼接Json格式的字符串时,如果字符串的内容过多,就容易拼出错误的字符串,而实践证明了这个字符串拼接的调试过 程明显拖延了开发的速度,因此,我们需要一个能够轻松组建Json格式字符串的工具包,来简化这个拼接过程,于是,Json4Ext出现了。
Json4Ext简介
Json4Ext是“AnyFo – Util”项目下的一个子项目,他提供了多个工具包,它让开发者轻松的通过构建一些简单的Java类,然后自动的将 这些Java类生成符合Ext要求的各种Json格式的字符串。
Json4Ext类简介
在Json4Ext中,目前提供了生成以下几种格式的Json数据的工具类:
1. ExtJS中普通消息类型的Json字符串
2. ExtJS中的Grid控件需要的Json字符串
3. ExtJS中常用的数组类型的Json字符串
4. ExtJS中的Tree控件需要的Json字符串
AnyFo - Utils - XmlManager :通用解析XML文件
AnyFo - Utils - XmlManager
XmlManager 介绍
Xmlmanager本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作。
AnyFo - 老爸
"老爸" 开发背景
操作不同的数据库,我们使用不同的工具,这样,要操作多个数据库,我们就需要学习多种工具,麻烦。对于一些普通的操作,如:数据 的增删改查,如果能使用一种通用的工具,来操作各种数据库,那就太好了。
于是AnyFo –老爸 出现了。
"老爸" 简介
AnyFo –老爸 是一个非常方便的通用数据库客户端工具,它能让你轻松的操作各种数据库。
AnyFo - 老妈
"老妈"背景
在各种系统中,都有可能会由程序自动的创建多个对数据库的连接,但是,如果程序在同一个极短的时间创建太多连接,就会对数据库造成很大的并发访问量,并且,每次在要执 行数据库操作时才去创建连接的实例,极大的占用了系统运行的时间,造成系统运行效率降低;如果整个应用程序共享同一个连接实例,又会在并发量较大时出现问题。因此,我 们需要一个连接池。
于是“AnyFo – 老妈”出现了。
“老妈”简介
AnyFo –老妈 是一个连接池,能为任何系统提供连接的管理功能,它能为程序带来:
1. 在同一个应用程序中,限制同一时间进程中的连接数量,保护系统
2. 在系统并发很多连接时,能够缓解CPU压力,相对均衡的分担CPU的时间片
3. 省略系统创造连接实例的时间,系统能够直接获取预先创建好的连接,提供运行效率
4. 同时支持连接不同URL的多个连接对象的统一管理
5. 调用极为方便,尽提供一个getConnection方法就完全满足程序需要
6. 配置极为简单
AnyFo - 桃子
“桃子”背景
开发各种系统的时候,我们经常出现要保存各种数据,然后需要再以不同的逻辑将这些数据取出来,如:堆栈,队列,随机等,如果将这些逻辑封装到 一个固定容器中,让这个容器以要求的逻辑统一存取数据,那各种系统的开发就方便了。
于是“AnyFo – Util – 桃子”出现了。
“桃子”简介
1. AnyFo – 桃子 能为程序同时提供多个不同逻辑的容器
a) 堆栈
b) 队列
c) 随机
2. 配置非常简单,并且能同时配置多套各种逻辑的容器
3. 调用非常简单,一个push一个pop方法即可完全搞定
AnyFo - Util - AnyFoAction :对Struts2.0中的控制器提供方便的操作
AnyFo - Util - AnyFoAction
AnyFoAction介绍
AnyFoAction是AnyFo - Util下的一个子项目,其中只包含一个类,这个类专门用来对Struts2.0中的控制器提供方便的操作。
用Struts2.0开发B/S结构的系统时,只要你写的控制器继承于这个类,就能更轻松的获得Servet中的各种API。
AnyFoAction功能概述
AnyFoAction中的那个类,提供多个方法来访问Servlet中的API,这些方法能提供的功能大致如下:
1.获得HttpServletResponse
2.获得HttpSession
3.获得ServletContext,即俗称的Application
AnyFo - EricSofa:专门用于C/S结构的网络服务器中间件
AnyFo - EricSofa
EricSofa 开发背景
在开发B/S结构的系统时,由于有Tomcat这样的Web服务器作为中间件,独立承担网络处理的性能和安全等功能,所以,开发者只需要集中 开发业务逻辑,然后将它无缝的融合到Tomcat中就可以了。并且,在业务逻辑开发过程中,服务器不用反复重新启动,启动一次,就能够自动部署开发人员逐步开发出的代码,将 代码融合到服务器中,实现“热部署”。
正是Tomcat这样的中间件的存在,给全世界的的B/S结构的软件制造者企业们带来了低成本,高效率和高稳定性。
那么,开发C/S结构的系统呢?企业们在开发C/S结构的系统时,却需要花大量时间在服务器和客户端的网络处理和安全等功能上 ,作为系统灵魂的“业务逻辑代码”的开发时间,却被“网络处理代码”的开发时间占用了。
如果,有一种C/S结构的网络中间件,独立承担网络和安全性等的处理,并且能如同Tomcat那样实现开发过程中代码的热部署,那 么,就能像Tomcat一样,为全世界的C/S结构系统的开发带来低成本,高效率和高稳定性了。
因此,EricSofa应运而生,EricSofa正是这么一个专门用于C/S结构的网络服务器中间件。
EricSofa 简介
EricSofa是一个专门用于C/S结构的网络服务器中间件,它由软件组织AnyFo-Tech的总工程师安坤(Eric)在2006年3月用Java亲自设计和 开发而成,其版本至今仍在不断更新中。
正是由于Eric希望在这个服务器中间件的帮助下,所有的C/S结构服务器的开发者们都可以不用那么辛苦,而可以准时下班,回家躺在 自己的沙发上看“韦小宝”等等,那该多好啊,因此,这个中间件由Eric亲自取名为“EricSofa”。
EricSofa 功能概述
EricSofa通过上面的介绍,我们已经大概的了解了EricSofa的功能,那么总结一下,EricSofa拥有以下功能:
1. 实现了一个多用户并发,多任务并发的网络服务器,对网络处理的各个功能的代码和处理流程的代码都已经实现了,让EricSofa从功能上满足各种业务系统的需要,从而 最大程度的简化了C/S结构服务器程序的开发,极大的缩短了开发时间,为开发者企业带来了高效率
2. 对不同业务系统,服务器的性能细节要求不同的问题,而EricSofa则提供了无代码的纯配置方式,对服务器中适用到的Socket的各个参数和线程池的各个参数进行最小粒 度的调节,让EricSofa从性能上满足对各种业务系统的需要,从而为开发者企业带来了服务器程序的高适应性和高性能,并且又一次的缩短了性能开发和调试的时间
3. 在服务器网络处理流程的各个环节中,以事件机制提供了强大而方便的“环节扩展方案”,开发者能够轻松的针对这个方案中提供的各个接口,随意的扩展流程中的各个 环节,尤其是业务逻辑处理环节的扩展
4. 由于网络上需要传输各种数据类型,因此EricSofa提供了对一个统一的数据扩展接口,让用户能根据自己的系统需要让EricSofa能够传输任意类型的数据
5. 为了实现服务器中各种数据的共享,EricSofa提供了类似于Web服务器一样的“Application”与“Session”两片数据共享空间,开发者可以轻松的在自己的代码中使用这 两片空间进行服务器中的数据共享,为多线程程序中数据共享和安全的问题带来了很好的解决方案,很大程度的减少了共享代码的编写和调试时间
6. 为了开发方便,EricSofa实现了 “无插件的自动热部署”的功能,让开发人员在不用重启EricSofa的情况下,在自己的开发工具中编写代码,并实时而快速的将代码编译 后的文件自动的部署到EricSofa中,而开发工具完全不需要安装任何插件,从而再一次的简化了服务器的开发过程,又一次轻松的将企业对服务器的开发过程引入了快速开发领域
7. 并且,经过实践,我们统计到,如果基于EricSofa开发一个高性能,多用户多任务并发的聊天室服务器,对于一个只有1年Java开发经验但是没有Socket开发经验的工程师 来说,最多只需3小时。
8. EricSofa的产生,我们希望全中国乃至全世界的软件开发者企业在开发C/S结构的网络服务器时,能够因为EricSofa的到来,就像作者Eric(安坤)一样,下了班就可以坐 在自己家的Sofa上,看“韦小宝”了,这也是EricSofa这个名字的由来。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)