以下文档来自 Anyfo 开源组织 http://www.anyfo-life.com/ ,版权归 Anyfo 开源组织所有,这里仅用于收藏,方便在线查阅。

 

 

开源项目:

 

 

AnyFo - Janet :通用并发线程池  

 

AnyFo - Util - AnyFoDao :Spring + Hibernate整合通用的DAO层类

 

AnyFo - Util - DynaObject :专门创建动态对象的工具

 

AnyFo - Util - Json4Ext:通用ExtJS数据交换处理  

 

AnyFo - Utils - XmlManager :通用解析XML文件

 

AnyFo - 老爸:通用数据库客户端工具

 

AnyFo - 老妈:通用连接池

 

AnyFo - 桃子开源项目:容器

 

AnyFo - Util - AnyFoAction :对Struts2.0中的控制器提供方便的操作 

 

AnyFo - EricSofa:专门用于C/S结构的网络服务器中间件 

 

 

 

 

以下是简介:

开源项目:

 

 

AnyFo - Janet :通用并发线程池  

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 - 老妈


"老妈"背景


在各种系统中,都有可能会由程序自动的创建多个对数据库的连接,但是,如果程序在同一个极短的时间创建太多连接,就会对数据库造成很大的并发访问量,并且,每次在要执 行数据库操作时才去创建连接的实例,极大的占用了系统运行的时间,造成系统运行效率降低;如果整个应用程序共享同一个连接实例,又会在并发量较大时出现问题。因此,我 们需要一个连接池。
于是“AnyFo – 老妈”出现了。


“老妈”简介


AnyFo –老妈 是一个连接池,能为任何系统提供连接的管理功能,它能为程序带来:
1. 在同一个应用程序中,限制同一时间进程中的连接数量,保护系统
2. 在系统并发很多连接时,能够缓解CPU压力,相对均衡的分担CPU的时间片
3. 省略系统创造连接实例的时间,系统能够直接获取预先创建好的连接,提供运行效率
4. 同时支持连接不同URL的多个连接对象的统一管理
5. 调用极为方便,尽提供一个getConnection方法就完全满足程序需要
6. 配置极为简单

 

AnyFo - 桃子开源项目:容器

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这个名字的由来。

 

 

 

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐