鉴于@SessionScoped CDI bean ,我试图了解@Stateful bean 可以做什么。我创建了这个 JAX-RS 资源:
@Path("ping")
public class PingResource {
@Inject
private StatelessCounter statelessCounter;
@Inject
private StatefulCounter statefulCounter;
@Inject
private SingletonCounter singletonCounter;
private long jaxrsCounter;
@GET
@Path("/counter")
public String incrementAndGetCounter() {
statelessCounter.incrementCounter();
statefulCounter.incrementCounter();
singletonCounter.incrementCounter();
jaxrsCounter++;
return statelessCounter.getCounter() + " " + statefulCounter.getCounter() + " " + singletonCounter.getCounter() + " " + jaxrsCounter;
}
}
只是为了了解有状态 bean 的行为。但是,每次我调用/counter
端点时,我总是会得到一个新鲜的statefulCounter
. 我只想知道 EJB 容器返回以前使用的相同有状态对象的标准是什么;因为它是有状态的,所以必须有一种方法来获取相同的旧对象。