Fab*_* B. 4 jsf ejb java-ee stateful-session-bean
我知道在Web应用程序中使用有状态与无状态EJB存在很多争议.
购物车是最常见的用例:Oracle的Java EE示例也在官方文档中使用了很多.
在stackoverflow上,我发现了许多有趣的答案,例如JavaEE中的购物车困境,经常会说:
好的... SFSB在企业,复杂的场景中很好,例如,如果你想与其他应用程序共享它们,并使它们不仅可用于JSF/web客户端
但是......如果你只是在开发爷爷的电子商务网站,只需坚持使用HttpSession/SessionScoped cdi-managed bean,并在SLSB中编写业务方法,因为它们更有效,等等......
但是,因为我还处于学习和发现阶段,所以我只想尝试自己试图建立一个简单的购物车.
我看到了一个有趣的教程,建议在HttpSession中存储一个JNDI检索的@Stateful购物车ejb接口实例,这是Web客户端第一次需要它,然后在网络会话期间像往常一样使用它.在我的JSF表示层中,我想我会有一个@SessionScoped @Named bean(让我们称之为ShopController),并且在其初始化中,将一个有状态ejb实例存储在一个实例变量中.
我想知道是否可以通过使用@SessionScoped CDI注释将@Stateful bean直接绑定到http会话.
它会如上所述起作用吗?CDI会为每个网络会话创建一个SFSB吗?
@SessionScoped用于@Named豆类,@Stateful用于@EJB豆类.如果我没错,你就不能用两者注释1个bean.如果你想使用@Stateful,只是你的注释ShoppingCart豆@EJB和@Local,然后引用它在你的ShopController.像这样的东西:
@Named
@SessionScoped
public class ShopController {
...
@EJB
private ShoppingCart cart;
...
// Getters and Setters
}
@Local
@Stateful
public class ShoppingCart {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |