我有一个带有以下注释的有状态会话bean:
@Stateful
@Name("fooBar")
public class FooBarAction implements FooBar {
我注意到有两种方法可以获得我的FooBar实例: Seam查找:
Component.getInstance(FooBarAction.class);
JNDI查找:
(new InitialContext()).lookup("MYAPP/FooBarAction/local");
当我使用JNDI查找时,每次执行查找时都会创建一个新的FooBar实例。默认构造函数被调用,并使用setter方法将我的SFSB的状态(属性)带回来。
当我使用Seam查找时,不会调用默认构造函数也不会调用setter方法。我只有这个实例。与之前的查找相同的实例。
那么区别在哪里?最佳使用方式是什么?
Statefull
bean不是池化的,而是根据用户请求创建的。 - Petr Mensik