【问题标题】:Considerations when making a jar into a J2EE shared library将 jar 制作成 J2EE 共享库时的注意事项
【发布时间】:2015-10-21 14:01:35
【问题描述】:

我很好奇“共享 J2EE 库”是什么意思,以及在说我的 JAR 是“共享 J2EE 库”之前我应该​​考虑的事情。

根据 Oracle 文档,共享 J2EE 库可以是“单个、简单的 JAR”。在这种情况下,“简单”一词是什么意思? 对作为共享 J2EE 库的简单 JAR 可以做什么或不做什么有限制吗?我的 JAR 可以生成线程、进行网络 I/O 等吗?我知道 J2EE 框架最初设计时将库最初视为 bean,并且这种 bean 设计有一些限制(例如,它们不负责线程、网络 I/O 等)。但似乎如果我只是希望我的 JAR 成为共享 J2EE 库,那么这些对 bean 的限制不适用。

最后,我的库是否应该遵循共享 J2EE 库的最佳实践列表,即使它不是 J2EE 库,以便引用我的库的客户端 Web 应用程序可以遵循最佳实践?例如。我的库是否应该同时发布“规范版本”和“实现版本”并遵守它们的语义,或者一旦我们声明我们不是共享 J2EE 库,这不是我们关心的问题。

【问题讨论】:

  • 你在这里说的是什么文档?如果它真的提到了“j2ee”,那么它可能已经很老了,不能用作了解当今存在的 JavaEE 的信息来源。
  • [link]{docs.oracle.com/cd/E13222_01/wls/docs92/programming/…} 在底部提到“使用共享 J2EE 库的最佳实践”,并包含共享库应该做的事情的列表。

标签: java jakarta-ee jar shared-libraries


【解决方案1】:

我觉得你对 java 库和 J2EE 库有点困惑。

每个 JAR 都可以是一个 java 库。例子很多:Spring、apache-commons、junit等……

为了在应用程序中使用 JAR 作为库,您需要做的就是将它包含在您的类路径中。

这些 JAR 可以执行 java API 提供的所有 标准 任务:套接字、NIO、文件、并发等......

您可以配置您的服务器以将此类库(只是一个普通的 JAR)加载到您的应用程序中。在这种情况下,服务器会自动将 JAR 的所有内容包含在您的类路径中,但它不会从中解析任何 J2EE 注释(@EJB、@Inject 等...)

另一方面,J2EE 共享库可以包含 J2EE 对象。也就是说,它可以包含 EJB、Servlet 等。

【讨论】:

  • 我的问题是,将普通 JAR 称为 J2EE 库是否不正确,其中不包含任何 J2EE 注释。
  • @hershey101 您链接到的特定文档包括“J2EE jars”集合中的标准 jars。在我看来,很难说它们是已部署 JavaEE 应用程序的 jar 包。
  • 好的。 IMO 我们应该使用更好地描述事物的名称。因此,如果我们的 jar 没有任何 J2EE 组件,则没有理由将其称为 J2EE 共享库,只需共享库即可
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多