Java EE 中的 EJB 与 CDI:差异、集成与设计模式应用
1. EJB 与 CDI 概述
在 Java EE 开发中,常常会面临选择使用 EJBs(Enterprise JavaBeans)还是 CDI(Contexts and Dependency Injection)管理的 Bean 的问题。一般来说,EJBs 提供了更多开箱即用的功能,而 CDI 管理的 Bean 则提供了相对轻量级的选择。
1.1 作用域差异
EJB 会话 Bean 有三种作用域:
- 无状态(Stateless):在客户端请求期间处于活动状态。
- 有状态(Stateful):在客户端的 HTTP 会话期间处于活动状态。
- 单例(Singleton):在整个应用程序中只有一个实例。
CDI 管理的 Bean 除了具有类似的作用域之外,还提供了更多可能性,例如添加自定义作用域和默认的依赖作用域(Dependent Scope),其活动状态取决于注入点的生命周期。
| 类型 | 作用域特点 |
|---|---|
| EJB 会话 Bean | 无状态、有状态、单例 |
| CDI 管理的 Bean | 类似 EJB 作用域,可添加自定义作用域,有依赖作用域 |
1.2 其他差异
EJBs
超级会员免费看
订阅专栏 解锁全文
307

被折叠的 条评论
为什么被折叠?



