我正在浏览一些Java软件包(Guice,GWT,JAX-RS等),我的头脑旋转了很多,因为我真的不知道这些特定软件包闪耀的用例。这些教程似乎向您展示如何对其包执行某些操作,但不是为什么您希望使用其包(或者在哪种情况下您不会)。
所以我想知道人们是否可以为Java库发布一些用例(或“不用例”)来补充the canonical what-are-good-free-Java-libraries question。我对Guice特别感兴趣,但这是一个更普遍的问题。
编辑:如果你知道一个非常好的网页可以回答特定包的这个问题(例如解释Hibernate或JAXB的用例等),请链接到它。
答案 0 :(得分:3)
Guice 是一个帮助应用程序配置的库。那是;您的应用程序将被编写为一组交互类,它们通过它们导出的接口相互通信(这是一种很好的编程实践,因为它有助于测试和维护)。 Guice可以帮助您将这些类连接起来并配置在一起,以实现真正的运行配置。
Spring 也解决了同样的问题,但是从XML角度开始,而guice是annotation
驱动的。然而,Spring不仅仅是,而且包含很多东西,这使得开源软件的集成变得简单。这是值得探索的。
在这个领域还有其他解决方案,例如 PicoContainer 和 NanoContainer (可能由于缺少文档而导致更少)
答案 1 :(得分:2)
有很多来自Apache的东西,但最明显的是commons libraries,其中包含一些(主要是无用的)集合, Digester ,这使得更容易将自定义XML配置集成到您的应用程序, net 网络工具包(用于FTP和类似的东西)。
答案 2 :(得分:1)
答案 3 :(得分:1)
Ant 是一个Java构建系统,您可以通过在{{1中定义的配置文件来构建部署和运行Java应用程序(以及更多) }}。
Maven 是另一个存在的构建系统,因为它试图解决具有多个依赖项和相互依赖项的项目问题(仅使用XML
会变丑陋) 。
答案 4 :(得分:1)
GlazedLists :一个GUI适配器框架,用于查看/编辑/导航/过滤/排序/绑定具有JTable或JTree的对象列表。 (例如,如果您有一个MP3
个对象列表,其中包含各种字段,如艺术家,标题,专辑,流派等,则可以很容易地将MP3
对象的字段映射到a的列JTable,以您想要的方式格式化,无需编写太多代码。)
适用于存储在内存中的小到中等大小的对象列表:您必须使用GlazedLists'BasicEventList
和其他相关类作为集合实现,而不是您自己的任意List<>
,除非你想实现EventList
接口的所有方法......所以这使得很难封装预先存在的存储机制(例如数据库)。我已经在5000到50000计数范围内的List<>
个项目上使用它,而且速度相当快。
答案 5 :(得分:1)
GWT 是一个google工具包,它允许您编写Java用户界面代码(尽管是一个受限制的子集),GWT然后编译成javascript,以便通过Web浏览器查看。这使得开发富Internet应用程序(RIA)变得容易(.hh)。
答案 6 :(得分:1)
Quartz 是一个开源调度库,允许您执行复杂的类cron(甚至定制)作业调度,保持作业状态等
答案 7 :(得分:1)
JUnit,TestNG和EasyMock用于测试(还有很多其他的,我们使用的那些)。
JUnit允许您轻松创建作为测试的一部分运行的方法,EasyMock允许您创建传递的“模拟”(或假)对象,它将以非常具体的方式响应,您可以使用它来测试方法依赖于测试期间不存在的框架或运行环境。
答案 8 :(得分:0)
首先定义您的问题,然后通过FOSS搜索解决方案,如果有帮助的话。那里有太多的图书馆,疯狂并列出很多图书馆是不切实际的。
答案 9 :(得分:0)
JGoodies Forms:为Swing(FormLayout)提供强大的布局管理器,使其易于理解。
Swing为JDK提供了许多布局管理器,但是创建复杂的布局可能很困难。要么你最终使用了大量的JPanel,每个JPanel都有不同的布局管理器,要么花费数小时试图理解GridBagLayout。 FormLayout提供了一种通过使用简单语言来描述布局来创建复杂布局的简单方法。这种语言可以很容易地在纸上模拟您的表单,然后将其转换为代码。
答案 10 :(得分:0)
OSWorkflow 是一个开源项目,用于定义定制工作流程(通过XML
)。这些工作流可以是持久的,并且可以挂钩到Java代码中
答案 11 :(得分:0)
良好的数值Java库列表:
http://commons.apache.org/math/
http://dsd.lbl.gov/~hoschek/colt/
http://gams.nist.gov/javanumerics/jama/
对于数字很有用,显然:)