2

我正在浏览一些 Java 软件包(Guice、GWT、JAX-RS 等),我的脑袋有些晕眩,因为我真的不知道这些特定软件包在哪些用例上大放异彩。这些教程似乎向您展示了如何使用他们的包做某事,但没有告诉您为什么要使用他们的包(或者在哪些情况下您不想使用)。

所以我想知道人们是否可以为 Java 库发布一些可能不明显的用例(或“不使用用例”),以补充规范的 what-are-good-free-Java-libraries 问题。我对 Guice 特别感兴趣,但这是一个更普遍的问题。

编辑:如果您知道一个非常好的网页可以回答特定包的这个问题(例如解释 Hibernate 或 JAXB 或其他的用例),请链接到它。

4

12 回答 12

3

应用程序配置

Guice是一个帮助应用程序配置的库。那是; 您的应用程序将被编写为一组交互类,它们通过它们导出的接口相互通信(这是一种很好的编程实践,因为它有助于测试和维护)。Guice 可帮助您将这些类连接和配置在一起,以进行真正的运行配置。

Spring也解决了同样的问题,但从 XML 角度开始,而 guice 是 -annotation。然而, Spring远不止于此,它还包含许多使开源软件集成变得简单的内容。非常值得探索。

然而,在这个领域还有其他解决方案,比如PicoContainerNanoContainer(可能由于缺乏文档而流行的少得多)

于 2009-06-30T22:20:42.590 回答
2

阿帕奇公地

Apache 有很多东西,但最明显的是公共库,其中包含一些(大部分无用的)集合,Digester可以更轻松地将自定义 XML 配置集成到您的应用程序中,网络网络工具包(用于 FTP 和类似的东西) )。

于 2009-06-30T22:22:17.003 回答
1

用于测试的 JUnit、TestNG 和 EasyMock(还有很多其他的,这些是我们使用的)。

JUnit 允许您轻松创建作为测试的一部分运行的方法,EasyMock 允许您创建“模拟”(或假)对象以传入,这些对象将以非常特定的方式响应,您可以使用这些方式来测试依赖于测试期间不存在的框架或运行环境。

于 2009-06-30T22:52:38.830 回答
1

如果你想在数据库中持久化东西,使用某种持久化框架,而不是在裸 JDBC 上手工制作 SQL;你会避免很多麻烦。

Hibernate是一个流行的选择,但是任何实现JPA的东西都可以。

于 2009-06-30T22:01:48.527 回答
1

构建系统

Ant是一个 Java 构建系统,您可以通过在XML.

Maven是另一个存在的构建系统,因为它试图解决具有多个依赖关系和相互依赖关系的项目的问题(仅使用ant.

于 2009-06-30T22:09:52.753 回答
1

GlazedLists:一个 GUI 适配器框架,用于使用 JTable 或 JTree 查看/编辑/导航/过滤/排序/绑定对象列表。(例如,如果您有一个MP3对象列表,其中包含艺术家、标题、专辑、流派等各种字段。它可以很容易地将MP3对象的字段映射到 JTable 的列,按照您想要的方式格式化,而无需写很多代码。)

适用于存储在内存中的中小型对象列表:您必须使用 GlazedLists'BasicEventList和其他关联类作为集合实现,而不是您自己的任意List<>,除非您想实现EventList接口的所有方法。 .. 所以这使得封装预先存在的存储机制(例如数据库)变得很困难。我已经List<>在 5000 到 50000 个计数范围内的项目上使用了它,而且速度相当快。

于 2009-06-30T22:09:59.710 回答
1

Web开发

GWT是一个谷歌工具包,它允许您编写 Java 用户界面代码(尽管是一个受限制的子集),然后 GWT 将其编译成 javascript,以便可以通过网络浏览器查看。这使得开发富互联网应用程序(RIA)变得容易(ish)。

于 2009-06-30T22:21:32.370 回答
1

调度软件

Quartz是一个开源调度库,它允许您执行复杂的类似 cron(甚至定制)的作业调度、持久化作业状态等

于 2009-06-30T22:26:01.520 回答
0

良好的数字 Java 库列表:

http://commons.apache.org/math/

http://dsd.lbl.gov/~hoschek/colt/

http://gams.nist.gov/javanumerics/jama/

对数字很有用,显然:)

于 2009-06-30T23:03:17.560 回答
0

首先定义您的问题,然后在有帮助的情况下通过 FOSS 寻找解决方案。那里有太多的库,疯狂地列出很多库是不切实际的。

于 2009-06-30T22:02:08.837 回答
0

JGoodies Forms:为 Swing (FormLayout) 提供强大的布局管理器,并且易于理解。

Swing 为 JDK 提供了许多布局管理器,但创建复杂的布局可能很困难。要么您最终使用大量 JPanel,每个 JPanel 具有不同的布局管理器,要么您花费数小时试图了解 GridBagLayout。FormLayout 通过使用简单的语言来描述布局,提供了一种创建复杂布局的简单方法。这种语言可以很容易地在纸上模拟您的表格,然后将其转换为代码。

于 2009-06-30T22:23:51.743 回答
0

工作流程软件

OSWorkflow是一个用于定义定制工作流的开源项目(通过XML)。这些工作流可以是持久的,并且可以连接到您的 Java 代码中

于 2009-06-30T22:24:45.267 回答