Jsf 为什么可以将@Stateless EJB注入@SessionScoped托管Bean中?

Jsf 为什么可以将@Stateless EJB注入@SessionScoped托管Bean中?,jsf,jsf-2,ejb,ejb-3.0,cdi,Jsf,Jsf 2,Ejb,Ejb 3.0,Cdi,为什么可以将@无状态的@EJB注入到@SessionScoped托管Bean中 我只是很好奇,因为在SessionScoped托管Bean中不可能使用@RequestScoped托管Bean作为托管属性 为什么可以将@Stateless EJB注入@SessionScoped 管理豆 这很有道理。您可能希望从有状态服务(如购物流程)中访问无状态组件(如验证服务)。CDI参考是,因此解决方案没有技术问题 我只是很好奇,因为不可能使用 @SessionScoped托管Bean中的RequestSco

为什么可以将
@无状态的
@EJB注入到
@SessionScoped
托管Bean中

我只是很好奇,因为在
SessionScoped
托管Bean中不可能使用
@RequestScoped
托管Bean作为托管属性

为什么可以将@Stateless EJB注入@SessionScoped 管理豆

这很有道理。您可能希望从有状态服务(如购物流程)中访问无状态组件(如验证服务)。CDI参考是,因此解决方案没有技术问题

我只是很好奇,因为不可能使用 @SessionScoped托管Bean中的RequestScoped托管Bean作为托管 财产


您指的是JSF作用域,而不是CDI作用域,对吗?我不知道为什么这个星座可能会被禁止,但这两个规范是完全不相关的,所以没有“如果A在JSF中为真,那么B在CDI中必须为真”关系…

Jan,@RequestScoped也是CDI范围。请参见注释:此范围中的某些元素与web请求、servlet、JSP或JSF等无关。尽管从提问的方式来看,我认为OP实际上是在谈论同名的JSF范围;)是的,
@RequestScoped
当然也是一个CDI范围。JSF引用是由“托管属性”触发的是的,我指的是来自JSF的
@RequestScoped
。由于bean的生命周期,JSF中不允许这样做。我想对于EJB可能也是这样。与托管bean(JSF)相比,EJB中的生命周期是否有所不同?是的。但我们鼓励您以不同的方式提出新问题:)