Java依赖注入选项

我想花一些时间来总结一些流行的Java依赖注入(DI)框架。 这是可用功能的高级概述。

首先,什么是依赖注入?

“依赖注入是一种软件设计模式,可以删除硬编码的依赖,并可以在运行时或编译时更改它们。” – 维基百科

如果您曾经有一个带有12个参数的构造函数,那么您就已经遇到了使用依赖注入的令人信服的理由。

大多数对象都需要引用其他对象才有用。 依赖注入使系统可以提供那些引用,而您不必在应用程序级别上管理所有这些依赖。

这听起来很复杂,但实际上并非如此。 由于这不是对依赖项注入的深入讨论, 请查看Wikipedia页面 ,以各种语言查看几个示例。

方匕首

从最简单,最轻便的框架之一开始, Square Dagger是一个很小的库(<100KB),对于必须最小化其占用空间的程序(如移动应用程序)很有用。 它缺少较大框架的许多功能,但是它提高了速度,并提供了一种简洁的编译时验证工具。

Google Guice

Guice是Google尝试创建功能丰富的独立DI工具的尝试。 它在大多数应用程序(尤其是Web开发)中很有用。 它提供了比Dagger更多的功能,但速度较慢并且可能很复杂。

春天很大。 它会为您做所有事情,甚至编写perl,以便该perl可以洗衣服。 当然,它具有依赖注入。

好处是,如果您已经在使用Spring,则启用和使用DI非常容易,并且可以实现很好的集成方法。

不利的一面是,如果Spring不是您的本事,或者您试图将DI添加到现有的企业应用程序中,则可能很难隔离想要使用的一小部分功能。

可以通过XML或注释来配置Spring DI。 我强烈建议使用带注释的方法。 遍历代码要容易得多,并且可以为需要了解正在发生的事情的开发人员提供重要的见解。

Java EE6 CDI

CDI是Java Enterprise Edition中包含的上下文和依赖注入框架。 从表面上看,它看起来与Spring的基于注释的DI机制非常相似,实际上是这样。 它的幕后工作有些不同,但是在大多数情况下,它试图解决Java EE人群完全相同的问题。

Pico容器

我最后提到这一点是因为我只是在互联网上闲逛时碰到的。 像Dagger一样, PicoContainer是一个非常小的框架,旨在很好地完成一些工作。 它不具有Spring或CDI的功能或复杂性,而作为交换,您将获得简化。

我对此并不了解很多,但是现在我知道它的存在。 每天都有新的冒险!

重复数据删除

这篇文章是在我们的软件顾问之一Shannon Griswold( www.thegrisexplores.com )的允许下发布的。 原始文本可以在这里找到。

参考: Keyhole Software博客上的JCG合作伙伴 Shannon Griswold 提供的Java依赖注入选项

翻译自: https://www.javacodegeeks.com/2014/02/dependency-injection-options-for-java.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值