JAVA深入学习之Apache开源项目

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

对于接触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包,如下图)。


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


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

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


目录
相关文章
|
8天前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
15 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
9天前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
178 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
6天前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
8天前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
21 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
9天前
|
运维 Java Maven
Dockerfile实践java项目
通过上述实践,我们可以看到,Dockerfile在Java项目中扮演着至关重要的角色,它不仅简化了部署流程,提高了环境一致性,还通过多阶段构建、环境变量配置、日志管理、健康检查等高级特性,进一步增强了应用的可维护性和可扩展性。掌握这些实践,将极大地提升开发和运维团队的工作效率。
14 1
|
10天前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
21 2
|
10天前
|
算法 Java Linux
java制作海报五:java 后端整合 echarts 画出 折线图,项目放在linux上,echarts图上不显示中文,显示方框口口口
这篇文章介绍了如何在Java后端整合ECharts库来绘制折线图,并讨论了在Linux环境下ECharts图表中文显示问题。
24 1
|
10天前
|
运维 Java Maven
Dockerfile实践java项目
通过上述实践,我们可以看到,Dockerfile在Java项目中扮演着至关重要的角色,它不仅简化了部署流程,提高了环境一致性,还通过多阶段构建、环境变量配置、日志管理、健康检查等高级特性,进一步增强了应用的可维护性和可扩展性。掌握这些实践,将极大地提升开发和运维团队的工作效率。
13 1
|
13天前
|
存储 缓存 Java
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
27 1
|
13天前
|
存储 搜索推荐 算法
【用Java学习数据结构系列】七大排序要悄咪咪的学(直接插入,希尔,归并,选择,堆排,冒泡,快排)以及计数排序(非比较排序)
【用Java学习数据结构系列】七大排序要悄咪咪的学(直接插入,希尔,归并,选择,堆排,冒泡,快排)以及计数排序(非比较排序)
18 1

推荐镜像

更多