我应该了解Java开发堆栈的哪些组件?

时间:2010-12-03 12:02:56

标签: java frameworks development-environment

我对Java开发的了解相当有限。我遇到了以下相当令人生畏的组件/工具/框架列表,这些组件/工具/框架被描述为“相当典型的Java堆栈”。我会去研究这些问题,但是在我的事情清单上还应该知道些什么呢?下面的替代方案或此列表中未包含的其他组件类型。

我的主要目的是进行一些Scala开发,但实际上涉及与Java的大量交互。

  • 检票
  • Hibernate(JPA)
  • Atomikos(JTA)
  • 陶土
  • Wicket-Push(Cometd)
  • 道场
  • AspectJ的
  • XStream的
  • TestNG的
  • DBUnit的
  • EasyMock的
  • MySQL的
  • 码头
  • 的Maven
  • 哈德森
编辑:当我说“知道”时,我现在并不是要深入了解它们以及如何与它们一起发展。我的意思是我应该了解它们,它们的用途是什么,并且认识到我何时应该考虑使用它们。因此,我有兴趣了解所有常用的工具/技术/框架,以便我可以将它们调查到这个初始程度。

6 个答案:

答案 0 :(得分:4)

这是一个用于全面服务器园区Web应用程序的相当大的技术组合。

我建议您首先关注核心Java运行时并首先学习它,因为这是所有其他技术最终构建的基础。


编辑:由于您的重点是技术,我建议您最初学习如何在像GlassFish v3这样的Java EE 6服务器中编写和部署Scala程序,我觉得这很不错。原因很简单 - 您列出的所有技术都是单独的实体,需要将它们组合在一起才能工作。您可以使用Java EE服务器在单个程序包中获取大部分功能,这样您就可以推迟实际的修改,直到您更熟悉基于Java的Web平台上的Scala环境。 / p>

当你从“我已经编写了一个Scala程序”到“我已经编写并将Scala程序部署到我的生产Java EE服务器(我可以在此网页中看到)”时,你实际上已经完成了非琐碎的工作。

答案 1 :(得分:1)

我只会评论使用我自己使用的技术

  • Hibernate(JPA) - 此框架允许您轻松使用关系数据库记录作为普通的旧Java对象
  • Dojo - Javascript库,便于客户端操作。如果您主要进行服务器端开发,则大多数情况下您不必担心这一点。
  • AspectJ - 面向方面编程的实现,以满足交叉需求。这是一个深深的兔子洞。这允许您以功能方式与Java代码交互。
  • DBUnit - 我只是用这个作为预装数据库的工具,带有一堆测试记录
  • EasyMock - 测试库,让您可以轻松专注于单个测试单个功能
  • MySQL - 标准RDMS
  • Jetty - servlet容器的纯java实现。非常适合快速开发。
  • Maven - 用于管理项目依赖关系和构建/部署项目的构建工具

答案 2 :(得分:0)

将您的列表放在待办事项列表上,然后从强大的IDE(eclipse或netbeans)开始。

我认为首先要添加的是日志框架(log4j)和测试框架(jUnit或TestNG)。对于建筑 - 我建议在转移到maven之前先看看蚂蚁。

Hudson很棒,但只有你使用版本控制,发布跟踪器和构建工具才有意义(我认为)。

答案 3 :(得分:0)

我认为自己是一名Java开发人员,你的列表中只有一个我实际使用的项目(XStream)。另外我知道其他5个项目,但其中大部分都是我从未听说过的。

我认为http://download.oracle.com/javase/7/docs/api/overview-summary.html的内容在涉及“相当典型的Java堆栈”时出现在其他人面前。如果您不知道标准运行时中已有的内容,您怎么知道需要哪些额外的框架?大约有40000个课程需要了解。每天学习10个,你将掌握10年的基础知识: - )

答案 4 :(得分:0)

  • Smack API - 良好的XMPP协议API
  • Saxon - XSLT处理器
  • Spring Framework - web-dev平台
  • PostgreSQL - 伟大的RDBMS:)
  • java.nio中
  • .....

还有很多甚至更多。

答案 5 :(得分:0)

至少你错过了:

  • EJB
  • JMS
  • JAXWS