【问题标题】:EJBs in libraries - Reusing EJBs库中的 EJB - 重用 EJB
【发布时间】:2017-05-20 10:52:25
【问题描述】:

假设我想创建一个库,我将在未来的项目中使用它,但我还想在该库中包含引用其他 EJB 等的 EJB。该库还将包含简单的 java 类。最好的方法是什么?在这种情况下如何定义依赖关系?我想我会用注释来定义它们。如果库的用户想要配置其他依赖项,他可以通过在项目的 ejb-jar.xml 中覆盖它们来实现。过去有没有人做过这样的事情?在 Eclipse 中开发时,您会怎么做?

基本上我的问题是,据我所知,如果我只是创建一个 ejb-jar,我将把它包含在我的所有项目中,ejb 容器将实例化我的 e.g.部署时的 MDB,即使我不需要库中包含的所有 MDB,而只需要其中的一些。

不将 MDB 定义为带有注释的 EJB 或在 ejb-jar.xml 中但仅定义它们的依赖项的解决方案是什么?

会话 bean 呢?即使我不在项目中使用它们也会自动实例化吗?

【问题讨论】:

  • 我不知道这是否是最好的方法,但我曾与一家公司合作,之前我们将所有内容打包为.jar,然后将其作为 maven 依赖项包含在内。然后我们可以根据需要访问.jar 中的EJB。同样,不确定这是否是最好的方法,但如果您想尝试,这是一个选择。
  • 即使您不使用无状态 bean,也可以实例化它们,是的。 SLSB 必须是池化的,因此可以提前创建一些实例,而无需任何请求。
  • 据我记得,对于市场上的大多数应用程序服务器,您可以将池配置为初始大小为零。这能解决你的问题吗?
  • @Leonardo 实际上我正在寻找一种以最佳方式组织 ejb 代码的方法。主要是创建一个 ejb 库,其依赖项在库中以某种方式定义,但也可以在其外部进行配置。我在想也许这是不可能的,但我对 ejbs 没有深入的了解。

标签: java jakarta-ee ejb code-reuse


【解决方案1】:

EAR 文件。尽管不是很常见,但您可以将您的库及其依赖项包含在一个 EAR 文件中并进行分发。 我想做的是在它自己的 Jar 文件中分发库以及依赖项文档(例如:Maven 的 POM 文件或 ivy 的 xml 文件)。无论哪种方式,你都需要一个依赖管理器。

还有一个选项可以构建一个胖 JAR 文件,其中所有依赖项都被分解。我真的不喜欢那样。如果我必须包含依赖项,我会使用 EAR 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多