我无法理解为什么在所有指南中都写这个:
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()”方法有什么好处?
答案 0 :(得分:0)
在EJB 3之前,无法直接查找无状态会话bean。除了与其他bean类型的一致性之外没有其他任何好处,这就是它在EJB 3中被删除的原因。
有状态会话bean仍然有一个好处,因为create方法是工厂方法,因此如果切换到EJB,则会丢失类型安全性(cast vs create()返回类型)并且取决于JNDI的相对速度vs home.create(),你可能会失去一些表现。