相当于局部变量的@EJB注释?

时间:2014-08-08 19:52:39

标签: java hibernate java-ee annotations ejb

Hibernate中的EJB。是否有任何等价的依赖注入

@EJB(mappedName = FoobarServiceInterface.JNDI_NAME_LOCAL)
private FoobarServiceInterface foo;

foo是局部变量时?

我设法为班级成员使用@EJB注释或

FoobarServiceInterface bar = (FoobarServiceInterface)InitialContext.doLookup(FoobarServiceInterface.JNDI_NAME_LOCAL);

进行查找,如果bar是局部变量。

但是,我想知道是否有任何注释可用于局部变量,例如@EJB用于类成员变量。

2 个答案:

答案 0 :(得分:0)

将它用作局部变量的好处是什么? EJB可以由许多请求/线程共享,查找不是自由进程,因此通常建议将其用作类成员而不是本地变量。

答案 1 :(得分:0)

不,没有这样的注释。根据ejb3.1规范:

  

4.3.2依赖注入   ...如果会话bean使用依赖注入,容器会在创建bean实例后注入这些引用,并且   在bean实例上调用任何业务方法之前......

因此,容器用于注入依赖项的注释(@EJB,@ Resource,@ Inject)仅适用于某些Targets。例如:@Target(value = {TYPE, METHOD FIELD })