2013-07-12 72 views
2

我在有许多静态方法的类中注入一个无状态会话bean。 我想从这些静态方法访问这个bean。这个没有文档。我们可以从静态方法访问/调用无状态会话Bean吗?

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

+1

你试过了吗?你有什么问题吗? – kosa

+0

建筑决策基于此。还没有尝试过。 –

+0

文档对此没有提及。 –

回答

0

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

+1

问题是关于使用STATIC方法访问它们。 –

1

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

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

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

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

建议在方案中像下面 -

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

在scenraio不推荐像下面 -

取决于有多少规范的开发,因此这类方法也可被劝阻。如果所有的开发人员对EJB,事务管理和部署都没有多少经验,那么这种方法就会产生危险的情况。

+1

谢谢。问题是关于从静态方法访问它们。而不是如何。它关于“如果我们可以”和“如果它是一件好事/推荐”做和 –

+0

嗨凯文,我的答案可能不是预期的格式。我试着再次逐一回答问题。 – Taps

+0

嗯..我想你错过了一点。我不是在询问有关从非EJB访问的内容,我正在询问有关“静态方法”的访问。 –

相关问题