JAVA深入学习之Apache开源项目

对于接触JAVA的同学来说可能很难找到一种方式去快速提升自己,本人对JAVA的真正了解也才一年多,今天只想分享一下学习经验。

我列出了以下这些可能对我们有用,或平时能用得上的开源项目:

1,Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,采用纯Java开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。

2,HTTP Server是目前最流行的HTTP服务器软件之一(也就是httpd,感兴趣的可以了解下Nginx)。

3,ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线(不过我个人比较喜欢RabbitMQ,而且性能更好)。

4,Apache Ant的全名是"Another Neat Tool",是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,用于开发 Java 程序。

5,Apache Commons项目专注于开发可重用的Java组件。

6,CouchDB 是一个"面向文档"的数据库(对此感兴趣的可以研究下MongoDB)。

7,Hadoop 是Apache软件基金会所研发的并行运算编程工具和分布式文件系统(大数据存储,数据仓库,数据挖掘)。

8,HttpComponents 就是之前的HttpClient项目,改名字是因为它已经从一个单纯的http客户端组件转变成了客户端服务器通吃的组件。

9,Ibatis 是apache的一个开源项目。使用ibatis 提供的ORM机制,其实就是用个访问数据库的。

10,Apache Lenya 是Java的开源内容管理系统(Content Management System,CMS)。

11,Apache Logging Services项目创建并维护着与免费对大众发布的日志应用有关的开源软件。

12,Lucene 是一个高性能的基于 Java 的全文索引/检索引擎(我初学JAVA时就选的这个,还买了本in action)。

13,Maven 是一个基于 Java 的项目管理工具,非常好用,本身也是JAVA写的,可以试着自己建个私服(我是这么做过)。

14,MINA (Multipurpose Infrastructure for Network Applications) 是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可靠性的网络应用程序(如果对JAVA网络编程感兴趣的可以研究下Netty4/5)。

15,Apache POI是Apache软件基金会的开放源码函数库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能(导入、导出数据用,很常用)。

16,Portal 是基于WEB的应用程序,它将不同资源进行整合并展现给用户,提供包括内容聚合、单点登陆、个性化制定和安全管理等服务的基础Web平台。

17,Roller 是一个全功能的多用户博客平台(还没来得及研究)。

18,Shiro(权限管理框架)

19,SpamAssassin 是目前最好的、最流行的开源反垃圾邮件软件之一。

20,Subversion(svn团队开发利器)

21,Apache Synapse是一个易于使用、轻量级的XML与Web Services管理和集成中间件,可用于搭建SOA和ESB的基础平台。

22,Tomcat 是一款开源的Serlvet容器(我会下源码然后Debug,它是个ANT工程,另外可能还要小改下代码,引用了四个jar包,如下图)。

JAVA深入学习之Apache开源项目

23,ZooKeeper 树形存储数据库(我是这么认为的),但它有个重要的角色,就是注册中心。


当然,Apache中的项目还不止这些,还有spring也有一些项目,大家都可以主动地去了解下,说不定哪天的项目中就用到了其中的一个或几个。

JAVA是个大家族,博览的同时一定要注重基础的扎实培养,多写代码。


上一篇:使用IDEA导入工程时无反映的问题处理


下一篇:openfire中的集群技术及其原理