【问题标题】:Can we access/call Stateless Session Bean from Static method?我们可以从静态方法访问/调用无状态会话 Bean 吗?
【发布时间】:2013-07-12 02:40:06
【问题描述】:

我在一个有许多静态方法的类中注入了一个无状态会话 bean。 我想从这些静态方法中访问这个 bean。没有这方面的文档。

所以我想知道它是否允许。如果是,有什么缺点吗?推荐/不推荐?

【问题讨论】:

  • 你试过了吗?你有什么问题吗?
  • 架构决策基于此。还没试过。
  • 文档没有说明它。
  • 告诉项目的建筑师成为真正的建筑师测试它
  • 目标类是否由容器管理?

标签: java static ejb instance stateless-session-bean


【解决方案1】:

如果允许?是的,容器内和容器外都可以。

您可以从非 EJB 访问 EJB。请检查以下链接。

https://stackoverflow.com/a/9061924/1718893

如果类和 EJB 在同一个项目/可部署,那么 JNDI 调用应该很容易。上面链接中提到的几个步骤可以跳过。

在以下场景中推荐 -

根据情况,这可能是推荐的方法。当我不得不实现工厂模式时,我遇到了这种情况。仅在需要时根据条件调用 EJB。我本可以让 Factory 类本身成为 EJB。但由于它依赖于其他一些决策组件,这是不可能的。

不推荐在以下场景中使用 -

根据遵循的规范开发程度,也可能不鼓励这种方法。如果所有开发人员对 EJB 及其事务管理和部署都没有多少经验,那么这种方法可能会产生危险情况。

【讨论】:

  • 谢谢。问题是关于从 STATIC 方法访问它们。它不是关于如何。它是关于“如果我们可以”和“如果它是一件好事/推荐”做和
  • 嗨凯文,我的回答可能不是预期的格式。我已经尝试逐点再次回答问题。
  • 嗯.. 我猜你错过了一点。我不是在询问来自 NON-EJB 的访问,我是在询问来自“静态方法”的访问。
【解决方案2】:

您绝对可以从实例方法或变量中访问静态方法或变量...但不能从静态方法中访问实例方法或变量!

【讨论】:

  • 问题是关于在静态方法中访问它们。
猜你喜欢
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-14
相关资源
最近更新 更多