pra*_*see 67 spring cdi java-ee-6
我们计划从头开始编写Web应用程序,已经决定使用符合Java EE 6标准的最新版Glassfish,因此我们正在分析是否可以使用CDI而不是Spring.
我们可以说CDI可以替代Spring吗?
jan*_*oth 93
CDI代表"上下文和依赖注入",而Spring是一个围绕依赖注入容器的完整生态系统.要比较两者,您必须区分比较.
依赖注入由两个容器处理.主要区别在于CDI以动态(又称:有状态)方式处理DI - 这意味着在执行时解析依赖关系.Spring的方法是静态的 - 这意味着组件在创建时连接在一起.虽然CDI方式在第一眼就看起来有点不同寻常,但它的优势远远超出了它并提供了更多更高级的选择(我正在以两个高效的CDI应用程序为背景来编写).
如果你看一下生态系统,情况会有所不同:Spring捆绑了很多罐子(> 150),而CDI本身就很小.典型的CDI用法将在Java EE 6应用程序服务器内部,但您可以轻松地使其在servlet引擎甚至Java SE中运行.这意味着使用CDI不会假设使用Hibernate,JPA,EJB或其他任何东西 - 这取决于您.
如果您需要更多功能,CDI会提供可移植扩展的概念(这本身就是API值得的).存在独立的扩展模块,如Apache CODI和Seam 3,涵盖安全,邮件,报告等主题.
总结一下:CDI与Spring生态系统的"替代"完全不同,它相当于对Spring的依赖注入机制的改进.它是Java EE 6的一部分,所以如果您使用的是带有Java EE 6的GlasFish,那么您一定要选择CDI.在我看来,你的问题是:我可以用Java EE 6替换Spring吗?我猜我的答案非常明显;-)
看看Weld有一个好的开始......
Lam*_*bda 10
Spring不仅仅是一个依赖注入容器.它还具有AOP工具,用于JPA,SQL等的模板甚至更多.
但是,CDI可以用作Spring的DI API的替代品.
| 归档时间: |
|
| 查看次数: |
29585 次 |
| 最近记录: |