Pas*_*ent 29
使用新的EJB 3.1规范是否可以将EJB注入pojo?我知道在EJB 3.0中,@ EJB注释可用于注入EJB,但这不适用于简单的pojos.
如果您使用JSR-299(Java C ontexts和D ependency I njection),即如果您的POJO是CDI托管bean,则可以将EJB注入POJO .在这种情况下,您可以这样做:
@Inject MyEJB service
Run Code Online (Sandbox Code Playgroud)
但这不是EJB 3.1功能,而是来自CDI.如果您不使用CDI,则必须进行查找.
新的EJB规范(3.1)增加了为EJB指定全局JNDI名称的功能.这意味着您可以在任何地方的任何bean中使用它们.
但是,您必须执行显式JNDI查找,因为EJB 3.1容器不会知道您的POJO.
唯一的例外,我猜不适用于你,如果你的POJO真的是一个应用程序客户端,在这种情况下,提供包含EJB的字段是静态的,你可以将@EJB注释应用于它.如果这是您的情况,您应该检查整个Java EE 5规范中的应用程序客户端规则.
最后,包含JSR-299的Java EE 6可能允许您描述的内容以某种方式发生; 我不知道规格,所以不能评论它.
我希望这一切都有帮助.
| 归档时间: |
|
| 查看次数: |
24057 次 |
| 最近记录: |