首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果没有Web层,因此没有HTTP会话,CDI有意义吗?

如果没有Web层,因此没有HTTP会话,CDI有意义吗?
EN

Stack Overflow用户
提问于 2012-01-26 18:43:12
回答 3查看 390关注 0票数 7

新的JSR299“Java EE的上下文和依赖注入”似乎是基于“作用域”的概念。

创建bean并将其关联到受支持的作用域之一:应用程序、会话(映射到HTTP会话)、会话和请求。

如果没有HTTP会话(例如,通过EJB远程处理公开功能的企业应用程序),因为托管Beans不会与任何上下文相关联(因为它们不存在),那么使用CDI有意义吗?

在这样的场景中使用CDI是可能的吗?它会给它带来哪些好处?

EN

回答 3

Stack Overflow用户

发布于 2012-01-26 19:34:02

这让我想起了我之前问过的问题:How does @SessionScoped work with EJB? Is CDI only for web-tier?

似乎“作用域”的概念只在HTTP会话的情况下是相关的。

但是,我可以将@ApplicationScoped作用域作为实现应用程序单例bean的一种有效方法,尽管请求是HTTP请求。

Javadoc说:

应用程序范围处于活动状态:

(...)

  • 在任何Java服务调用期间、在任何EJB远程方法调用期间、在任何EJB异步方法调用期间、在对EJB超时方法的任何调用期间以及在向任何EJB消息驱动bean传递消息期间,
票数 3
EN

Stack Overflow用户

发布于 2012-01-26 23:23:57

您还可以创建自己的作用域。CDI具有很强的可扩展性,可以在各种情况下使用。它也被用于既没有HttpSession也没有HttpRequest的SE应用程序中。

票数 3
EN

Stack Overflow用户

发布于 2012-03-16 22:58:09

除此之外,CDI不仅用于生命周期管理,您还可以使用它进行依赖注入,从而以一种非常干净的方式将接口与其实现分离。您还可以使用拦截器和装饰器执行一些AOP技术,或者通过利用CDI事件构建一个非常松散耦合的观察者模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9016937

复制
相关文章

相似问题

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