由于java开发接触到好多Apache项目,所以进行一个简单的整理。如有不对的地方请随时提出。 我的QQ邮箱:577328725@qq.com 同时有点自私:我只会将一些我接触到以及我可能用到的一些项目进行整理,请见谅!! 一、简介
Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。 官方网站:http://www. 二、介绍
在网上看到很多文章都提及Apache中的jakarta 项目,这个项目诞生了很多当前主流的技术。著名的Tomcat服务器就是出自Jakarta旗下,后来将其中的大型、成熟的子项目剥离成为相对独立的Apache子项目。不过很不幸的是,当前Jakarta已无剩余的子项目,并于2011年12月21日退役。也应该称其实幸运的,因为Jakarta所有的子项目都脱离母体,成为成熟项目,这是值得庆幸的事。 曾经隶属于Jakarta项目,现在已经独立的子项目包括:
三、项目整理
1.Tomcat
简介:一个运行Java Servlet与JavaServer Pages(JSP)的容器。 Apache Tomcat是一个可以执行Java Servlet和JavaServer网页技术的开源软件。Apache和Tomcat是相对独立的,用户可以通过Apache访问Tomcat资源,反之亦然,二者可以在同一台服务器上。Apache Tomcat是由全世界各地的最佳开发者合力研发而来的,是一款非常优异的开源软件。 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。 详解:-----留在以后的连接---- 2.Ant
简介:基于Java语言的构建工具,类似于C语言的Make工具。 网址:http://ant./ Apache Ant是一种基于Java的build工具,并将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。它有些类似于(Unix)C中的make ,但没有make的缺陷。类似于make的工具本质上是基于shell(语言)的:他们计算依赖关系,然后执行命令(这些命令与你在命令行敲的命令没太大区别)。Ant就不同了,与基于shell命令的扩展模式不同,Ant用Java的类来扩展。(用户)不必编写shell命令,而其配置文件是基于XML的,这样做虽然没有shell命令表达能力强,但是具有了跨平台性。 详解:-----留在以后的连接---- 3.Common
简介:Commons是一个主要专注于可再用Java组件所有方面的Apache项目,Commons就好比一个java百宝箱。 Apache Commons项目由3个部分组成:
Apache Commons Proper组成: <1>BCEL Byte Code Engineering Library (BCEL),这是Apache Software Foundation 的Jakarta 项目的一部分。BCEL是 Java classworking 最广泛使用的一种框架,它可以让您深入 JVM 汇编语言进行类操作的细节。BCEL与Javassist 有不同的处理字节码方法,BCEL在实际的JVM 指令层次上进行操作(BCEL拥有丰富的JVM 指令级支持)而Javassist 所强调的源代码级别的工作。 <2>BeanUtils 网址:http://commons./proper/commons-beanutils/ 针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。 详解:-----留在以后的连接---- <3>BSF Bean Scripting Framework (BSF)是一个支持在Java应用程序内调用脚本语言 (Script),并且支持脚本语言直接访问Java对象和方法的一个开源项目。有了它 , 你就能在java application中使用javascript, Python, XSLT, Perl, tcl, ……等一大堆scripting language. 反过来也可以,就是在这些scripting language中调用任何已经注册过了的JavaBean,java object。
另外,也支持以下的这几种语言通过他们自身的BSF引擎来实现(下面提到的各个脚本语言的引擎都可以在其官网下载到)。
详解:-----留在以后的连接---- <4>Chain 对Chain of Responsibility(责任链)设计模式的实现。使多个对象都有机会处理请求, 从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。 详解:-----留在以后的连接---- <5>CLI 处理命令行命令的解析工具。 详解:-----留在以后的连接---- <6>Codec 这个工具是用来编码和解码的,包含一些通用的编码解码算法。包括一些语音编码器,Base64,URL,Soundx等等。 详解:-----留在以后的连接---- <7>Collections 扩展和增加标准的 Java Collection框架。 详解:-----留在以后的连接---- <8>Compress Compress提供了一组API用于操作(解压/压缩)ar、cpio、tar、zip、gzip和bzip2等格式的文件。 详解:-----留在以后的连接---- <9>Configuration 这个工具是用来帮助处理配置文件的,支持很多种存储方式
详解:-----留在以后的连接---- <10>Crypto Crypto 是一个加密库,使用 AES-NI (Advanced Encryption Standard New Instructions) 进行优化。提供了加密级别和流级别的 API。开发者可以使用最少代码来实现高性能的 AES 加解密应用。 详解:-----留在以后的连接---- <11>CSV CSV 是一个用来读写各种 Comma Separated Value (CSV) 格式文件的 Java 库. 详解:-----留在以后的连接---- <12>Daemon Daemon是apache旗下Commons组件库的一个组件,是一套专门用于将Java应用打包成操作系统服务的类库。创建类似unix守护线程的java代码,可以安全地执行一些后台操作,线程不被某个应用程序控制,而是由操作系统控制 类似windows的service,可以设置一个服务依赖于另一个服务,一个服务关闭前必须先执行另一个服务。 Commons Daemon的实现包括两部分组成,一部分由C语言编写,主要用于调用操作系统接口,另一部分由Java语言编写,主要用于实现守护进程的功能(实现服务需要调用的各种功能,比如关闭应用,启动应用等)。 实际上Commons Daemon并不仅仅支持window平台,在Linux和Unix平台下依然可以用。 详解:-----留在以后的连接---- <13>DBCP 数据库连接池 <14>DbUtils 一个JDBC的工具类,比如可以将ResultSets生成javabean。 详解:-----留在以后的连接---- <15>Digester 基于规则的XML文档解析,主要用于XML到Java对象的映射. <16>Discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。 详解:-----留在以后的连接---- <17>EL EL是 Apache 组织中一个用来解析 JSP 2.0 的表达式语言的 Java 类库。 详解:-----留在以后的连接---- <18>Email Email的目的是提供一组用于发送Email的API,它基于Java Mail API基础之上并进行了简化。 详解:-----留在以后的连接---- <19>Exec Exec 是 Apache 上的一个 Java 项目,提供一些常用的方法用来执行外部进程。 详解:-----留在以后的连接---- <20>FileUpload web应用中的文件上传组件 详解:-----留在以后的连接---- A functor is a function that can be manipulated as an object, or an object representing a single, generic function.(函数式编程) 详解:-----留在以后的连接---- <22>Imaging (previously called Sanselan) A pure-Java image library. 详解:-----留在以后的连接---- 帮助进行IO功能开发,可以看成是java.io的扩展。 详解:-----留在以后的连接---- <24>JCI JCI 是一个封装了 Java 编译器的类库。 <25>JCS JCS是一个复合式的缓冲工具。可以将对象缓冲到内存、硬盘。具有缓冲对象时间过期设定。还可以通过JCS构建具有缓冲的分布式构架,以实现高性能的应用。对于一些需要频繁访问而每访问一次都非常消耗资源的对象,可以临时存放在缓冲区中,这 样可以提高服务的性能。而JCS正是一个很好的缓冲工具。缓冲工具对于读操作远远多于写操作的应用性能提高非常显著。 详解:-----留在以后的连接---- <26>Jelly Jelly能够把XML转换成可执行代码,所以Jelly是一个基于XML与Java的脚本和处理引擎。 Jelly借鉴了JSP定指标签,Velocity, Cocoon和Xdoclet中的脚本引擎的许多优点。Jelly可以用在命令行,Ant或者Servlet之中。 详解:-----留在以后的连接---- <27>Jexl Jexl是一个表达式语言,通过借鉴来自于Velocity的经验扩展了JSTL定义的表达式语言。 详解:-----留在以后的连接---- <28>JXPath 使用XPath语法操作javabean的工具。 详解:-----留在以后的连接---- <29>Lang 提供对java.lang包的扩展。提供了诸如StringUtils, StringEscapeUtils, RandomStringUtils, Tokenizer, WordUtils等工具类。 详解:-----留在以后的连接---- <30>Launcher 跨平台的java程序的启动。 详解:-----留在以后的连接---- <31>Logging 提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。 它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。用户被假定已熟悉某种日志实现工具的更高级别的细节。JCL提供的接口,对其它一些日志工具,包括Log4J, Avalon LogKit, and JDK 1.4等,进行了简单的包装,此接口更接近于Log4J和LogKit的实现. 详解:-----留在以后的连接---- <32>Math Math 是一个轻量的,自包含的数学和统计组件,解决了许多非常通用但没有及时出现在Java标准语言中的实践问题. 详解:-----留在以后的连接---- <33>Modeler Modeler 是 Java 程序提供一个用于创建基于 JMX 规范的 MBeans 模型的工具。 详解:-----留在以后的连接---- <34>Net 集合了网络工具和协议工具的实现。这个包还是很实用的,封装了很多网络协议。
详解:-----留在以后的连接---- <35>OGNL OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。 详解:-----留在以后的连接---- <36>Pool Commons-Pool 提供了通用对象池接口,一个用于创建模块化对象池的工具包,以及通常的对象池实现。 详解:-----留在以后的连接---- <37>Proxy Commons Proxy 是 Apache 的一个之项目,封装了 Java 对象代理的一些常用方法。 详解:-----留在以后的连接---- <38>RNG Implementations of random numbers generators. 详解:-----留在以后的连接---- <39>SCXML 处理SCXML,State Chart XML(SCXML) 是 W3C 组织制定的一种有限状态机的规范,它提供了一个在 CCXML 和 Harel State Tables 基础之上演化而来的状态机执行环境。 详解:-----留在以后的连接---- <40>Validator 提供了一个简单的,可扩展的框架来在一个XML文件中定义校验器 (校验方法)和校验规则。支持校验规则的和错误消息的国际化。用来帮助进行验证的工具。比如验证Email字符串,日期字符串等是否合法。 <41>VFS VFS(Virtual File System)是访问各种文件系统,可以是本地文件、HTTP服务器上的文件、zip中的文件。 这个包的功能很强大,极大的简化了程序对资源的访问。 支持的资源类型包括 :
详解:-----留在以后的连接--- <42>Weaver Provides an easy way to enhance (weave) compiled bytecode. 详解:-----留在以后的连接--- 4.Struts
简介:一个基于J2EE平台的MVC设计模式的Web应用框架。 经典框架模式SSH,第二个S就是Struts,虽然现在使用的是Struts2。 5.Lucene
简介:高性能的,基于Java语言的全文检索项目。 Java开发的高性能,全方位的文本搜索引擎。替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高, Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外, 是最重要的是使使用者可以随时应自已需要自订其功能。 6.Cocoon
简介:一个基于组件技术和XML和Web应用开发框架。 Apache Cocoon是一个基于Spring框架的围绕分离理念建立的构架,在这种框架下的所有处理都被预先定义好的处理组件线性连接起来,能够将输入和产生的输出按照流水线顺序处理。 7.SpamAssassin
简介:垃圾邮件过滤器 SpamAssassin是一个由Apache开发的一个著名的反垃圾引擎,邮件系统完整的集成了SpamAssassin反垃圾引擎。SpamAssassin中包含了各种各样的垃圾邮件监测技术,其中包括基于DNS和checksum的垃圾邮件监测、Bayesian过滤、外部程序、黑名单和在线数据库等。 8.Axis
简介:Apache Axis是一个基于SOAP应用的框架,核心是一个SOAP处理器,用于开发包括客户端,服务器端,SOAP Gateway等各种应用。 9.LoggingService
简介:一个开发可以在C++、Java、Perl、PHP、.NET计算机语言下运行的通用日志工具项目集合。 Apache Logging Services项目主要是为了提供应用程式除错以及监督的日志登录服务。 Apache Logging Services项目的产品包括三个日志登录框架,分别为log4j for Java、log4cxx for C++以及log4net for the Microsoft .NET framework。 Apache Logging Services还被应用于日志查看器和分析工具Chainsaw中。 10.Derby
简介:一个纯JAVA的数据库管理系统 Apache Derby是一个完全用java编写的数据库,Derby是一个Open source的产品,基于Apache License 2.0分发。 11.iBATIS&mybatis
简介:一个基于JAVA语言的数据持久化框架 网址:http://www./ https://github.com/mybatis/ibatis-2 https://github.com/mybatis/mybatis-3 在线API:http://tool.oschina.net/apidocs/apidoc?api=mybatis-3.1.1 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 12.其它项目
HTTP Server: 可以在UNIX,MS-Windows,Macintosh和Netware操作系统下运行的HTTP服务器的项目 参考资料: 360百科 ********************************************************************************结束语******************************************************************************************** |
|