java依赖注入

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

首先,什么是依赖注入?

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

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

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

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

方匕首

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

  • 方匕首
  • 在Android上使用Dagger进行依赖注入
  • Dagger –一个新的Java依赖注入框架

Google Guice

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

  • Guice –入门
  • 创建一个简单的谷歌guice应用程序
  • 使用Guice进行高级依赖注入

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

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

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

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

  • Spring框架的依赖注入
  • Spring IoC容器
  • Spring IoC教程

Java EE6 CDI

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

  • CDI依赖注入入门教程 。 注意:这是一个非常详细的教程。
  • CDI概述

Pico容器

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

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

  • PicoContainer简介
  • 两分钟教程

重复数据删除

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

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

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

java依赖注入