Hibernate中的EJB。是否有任何等价的依赖注入
@EJB(mappedName = FoobarServiceInterface.JNDI_NAME_LOCAL)
private FoobarServiceInterface foo;
当foo
是局部变量时?
我设法为班级成员使用@EJB注释或
FoobarServiceInterface bar = (FoobarServiceInterface)InitialContext.doLookup(FoobarServiceInterface.JNDI_NAME_LOCAL);
进行查找,如果bar
是局部变量。
但是,我想知道是否有任何注释可用于局部变量,例如@EJB用于类成员变量。
答案 0 :(得分:0)
将它用作局部变量的好处是什么? EJB可以由许多请求/线程共享,查找不是自由进程,因此通常建议将其用作类成员而不是本地变量。
答案 1 :(得分:0)
不,没有这样的注释。根据ejb3.1规范:
4.3.2依赖注入 ...如果会话bean使用依赖注入,容器会在创建bean实例后注入这些引用,并且 在bean实例上调用任何业务方法之前......
因此,容器用于注入依赖项的注释(@EJB,@ Resource,@ Inject)仅适用于某些Targets。例如:@Target(value = {TYPE, METHOD , FIELD })