Java CDI和EJB,安全问题?

Java CDI和EJB,安全问题?,java,security,jsf,ejb,cdi,Java,Security,Jsf,Ejb,Cdi,自从我开始学习JSF以来,我一直在回顾我的代码。 最复杂的问题之一再次出现。CDI和EJB之间的决策 我使用的是三个层,我想知道在每个层上使用哪种类型的注释: -支持MVC中定义的控制器 -服务层 -刀的 我的支持bean正在使用CDI,只要我不需要EJB中的任何东西。 但我被另外两个困住了。我记得读过关于使用EJBbean的文章,因为池功能可以防止大量请求或攻击(如果您愿意的话)。 因此,简而言之,考虑到安全性或任何其他不包括ViewScope的因素,是否有任何理由使用EJB无状态、有状态、L

自从我开始学习JSF以来,我一直在回顾我的代码。 最复杂的问题之一再次出现。CDI和EJB之间的决策

我使用的是三个层,我想知道在每个层上使用哪种类型的注释: -支持MVC中定义的控制器 -服务层 -刀的

我的支持bean正在使用CDI,只要我不需要EJB中的任何东西。 但我被另外两个困住了。我记得读过关于使用EJBbean的文章,因为池功能可以防止大量请求或攻击(如果您愿意的话)。 因此,简而言之,考虑到安全性或任何其他不包括ViewScope的因素,是否有任何理由使用EJB无状态、有状态、LocalBean等


提前感谢。

当您需要对事务、并发、池等的开箱即用支持时,请选择“是”。

当您需要对事务、并发、池等的开箱即用支持时,请选择“是”。

您在这里犯了一个概念错误。CDI绝对不是EJB的替代品。CDI的默认微调根本不提供事务管理。CDI是一个bean管理和依赖注入API,而不是服务层API。为了在CDI中管理事务,您必须添加另一个API以及一组其他注释

例如,CDI可以替代JSF管理的bean注释,但绝对不能替代EJB注释

因此,不存在有效的CDI vs EJB问题。两者都有完全不同的目的。注意,您可以在基于CDI的托管bean类中完美地注入基于EJB的服务类


至于安全性,不清楚您为什么在标题和标记中提到了这一部分,但CDI和EJB之间的决定与安全性无关,因为首先没有有效的CDI与EJB问题。

您在这里犯了一个概念上的错误。CDI绝对不是EJB的替代品。CDI的默认微调根本不提供事务管理。CDI是一个bean管理和依赖注入API,而不是服务层API。为了在CDI中管理事务,您必须添加另一个API以及一组其他注释

例如,CDI可以替代JSF管理的bean注释,但绝对不能替代EJB注释

因此,不存在有效的CDI vs EJB问题。两者都有完全不同的目的。注意,您可以在基于CDI的托管bean类中完美地注入基于EJB的服务类


至于安全性,不清楚您为什么在标题和标记中提到了这一部分,但是CDI和EJB之间的决定与安全性无关,因为首先没有有效的CDI和EJB问题。

所以如果我没有,没有?关于安全,有必要吗?如果我没有,没有?关于安全性,有必要吗?那么基本上,只有视图中使用的bean应该或者可能是CDI?我发现这是一个很难完全理解的主题,我已经读了很多遍了。基本上,是的。使用托管bean JSF或CDI作为控制器,使用EJB作为服务层。EJB的替代品是Spring,它也支持事务管理。请注意,您也可以使用@Named注释EJB,然后在视图中直接引用它,但这是一种非常紧密的耦合。另见。毕竟,我认为您的故事中缺少的关键是您不了解事务管理的好处。我在回答之前的问题时用了一个简单的例子解释了这一点:。对于您想知道的关于EJB中@Stateless vs@Stateful的情况,请看下面的答案:。非常非常好的答案。我开始理解EJB的整个概念。看起来我的研究是在浪费时间,你在最近的问题上给我的帮助被证明是更有价值的。所以基本上,只有视图中使用的bean应该或者可能是CDI?我发现这是一个很难完全理解的主题,我已经读了很多遍了。基本上,是的。使用托管bean JSF或CDI作为控制器,使用EJB作为服务层。EJB的替代品是Spring,它也支持事务管理。请注意,您也可以使用@Named注释EJB,然后在视图中直接引用它,但这是一种非常紧密的耦合。另见。毕竟,我认为您的故事中缺少的关键是您不了解事务管理的好处。我在回答之前的问题时用了一个简单的例子解释了这一点:。对于您想知道的关于EJB中@Stateless vs@Stateful的情况,请看下面的答案:。非常非常好的答案。我开始理解EJB的整个概念。看来我的研究是在浪费时间,你在最近的问题上给我的帮助被证明更有价值。