我无法理解为什么在所有指南中都写要使用它:
SayHiRemote sayHiRemote = InitialContext
.<SayHiHomeRemote> doLookup(SayHiHomeRemote.JNDI_GLOBAL_NAME)
.create();
sayHiRemote.hi();
而不仅仅是:
SayHiRemote sayHiRemote = InitialContext
.<SayHiRemote> doLookup(SayHiRemote.JNDI_GLOBAL_NAME);
sayHiRemote.hi();
如果不需要参数(无状态会话 Bean),"create()"方法有什么好处?
在 EJB 3 之前,不可能直接查找无状态会话 Bean。 除了与其他 Bean 类型的一致性之外,没有真正的好处,这就是为什么在 EJB 3 中将其删除的原因。
有状态会话 bean 仍然有一个好处,因为 create 方法是工厂方法,所以如果你切换到 EJB,你会失去类型安全(cast vs create() 返回类型),并且取决于 JNDI 与 home.create() 的相对速度,你可能会失去一些性能。