我有一个带有以下注释的有状态会话 bean:
@Stateful
@Name("fooBar")
public class FooBarAction implements FooBar {
我注意到有两种方法可以获取我的 FooBar 实例:
接缝查找:
Component.getInstance(FooBarAction.class);
JNDI 查找:
(new InitialContext()).lookup("MYAPP/FooBarAction/local");
当我使用 JNDI 查找时,每次执行查找时,我都会注意到创建了一个新的 FooBar 实例。默认构造函数被调用,setter 方法用于恢复我的 SFSB 的状态(属性)。
当我使用 Seam 查找时,不会调用默认构造函数,也不会调用 setter 方法。我只有实例。与上一个查找相同的实例。
那么有什么区别呢?最好的使用方法是什么?