@Stateful

@Stateful markiert eine EJB als "eine Instanz pro Client".

Member-State erlaubt, lebt bis @Remove oder Timeout.

I. Eigenschaften


II. Beispiel


@Stateful
public class CartBean {
    private final List<String> items = new ArrayList<>();

    public void addItem(String item) { items.add(item); }
    public List<String> getItems()   { return items; }
}

III. Lookup für "pro User"


Bei @Stateful willst du oft eine eigene Instanz pro User → also kein @EJB, sondern manueller JNDI-Lookup:

CartBean cart = (CartBean) ctx.lookup("java:module/CartBean");

IV. .NET-Pendant


Wie Session-State — aber Container-managed.