首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EJB bean还是普通托管Bean?

EJB bean还是普通托管Bean?
EN

Stack Overflow用户
提问于 2014-10-05 02:27:20
回答 1查看 668关注 0票数 1

这是EJB还是ManagedBean?要成为EJB,必须用@stateful、@无状态或@Singleton来注释它吗?我认为@SessionScoped和@ApplicationScoped类也是EJB bean。是这样的吗?

代码语言:javascript
复制
import javax.faces.bean.SessionScoped;
import javax.inject.Named;

@Named("userData")
@SessionScoped
public class UserData implements Serializable {

private static final long serialVersionUID = 1L;

public UrlData data;

public UrlData getData() {
    return data;
}

public void setData(UrlData data) {
    this.data = data;
}    
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-05 02:51:41

@SessionScoped和@ApplicationScoped是ManagedBean而不是EJB的一部分,后者将类作为具有JavaServer Faces的资源。

  • @ApplicationScoped:应用程序作用域在所有用户与web应用程序的交互中始终存在。
  • @SessionScoped:会话作用域在web应用程序中的多个HTTP请求中持续存在。
  • @ViewScoped:在用户与web应用程序的单个页面(视图)进行交互时,视图作用域仍然存在。
  • @RequestScoped:请求作用域在web应用程序中的单个HTTP请求期间持续存在。

您可以在Java规范中看到更多细节

这是将EJB注入ManagedBean的示例代码。

代码语言:javascript
复制
@ManagedBean
@SessionScoped
public class Count {
    @EJB
    private CounterBean counterBean;

    private int hitCount;

    public Count() {
        this.hitCount = 0;
    }

    public int getHitCount() {
        hitCount = counterBean.getHits();
        return hitCount;
    }
    public void setHitCount(int newHits) {
        this.hitCount = newHits;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26199070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档