java依赖注入_Java依赖注入选项

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依赖注入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】电大中专跨境电子商务理论与实务 (19)作业 题库

1.亚马逊的运营模式是M2C模式:平台招商。该说法&#xff08; &#xff09; A.错误 B.正确 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.B2C跨境电商或平台的代表企业有敦煌网&#xff0e;阿里巴巴国际站。该说法&#xff08; &#xff09; A.错误 B.正确 …

Java连接微软ad_Java:连接到Active Directory(AD)?

我正在尝试与AD联系。我试图用这个代码来连接&#xff0c;但它似乎并没有连接。我很抱歉不能比这更具体&#xff0c;但这只是我所知道的。什么都没发生。我已经删除了我认为是这个类的非必要部分&#xff0c;在那里处理结果&#xff0c;因为在这一点上根本没有任何结果需要处理…

java se 定时任务_Java实现定时任务的三种方法

一、Quartz的特点 按作业类的继承方式来分&#xff0c;主要有以下两种&#xff1a; 作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式作业类不继承org.springframework.scheduling.quartz.QuartzJobBean类的方式 注&#xff1a;个人比较推崇第二种&…

Spring框架介绍

这是Spring框架和Spring核心概念的简介。 在本教程中&#xff0c;我们将介绍Spring Framework的主要优点和功能。 在随后的教程中&#xff0c;我们将学习有关Spring和Spring Boot的更多信息。 总览 我们知道&#xff0c; Spring框架是Java开发人员中最受欢迎的应用程序框架。 …

【渝粤教育】电大中专职业生涯规划 (2)_1作业 题库

1职业价值观具有明确的目的性、&#xff08;&#xff09;和坚定性的职业选择的态度和行为。 A自由性 B动机性 C自觉性 D制约性 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2不属于探索价值观方法的是&#xff08;&#xff09;。 A澄清反应法 B意见表决法 C间接提…

【渝粤教育】电大中专会计电算化_1作业 题库

1.下列有关会计电算化狭义概念的说法正确的是()。 A.以会计理论为主体的电子信息技术在会计工作中的应用 B.与实现电算化有关的所有工作 C.以电子计算机为主体的电子信息技术在会计工作中的应用 D.与实现电算化有关的主要工作 错误 正确答案&#xff1a;左边查询 学生答案&…

java 移动其他窗口_移动窗口平均值不等

TL;DR: 无论如何我可以摆脱我的第二个 for -loop&#xff1f;我在2D网格上有一系列时间点 . 为了消除它们位置的快速波动&#xff0c;我在一个帧窗口上平均坐标 . 现在在我的情况下&#xff0c;它想要包含特定点的帧&#xff0c;如果它的行程比 cut_off 值更远 .在第一个 for -…

auot lisp 选择集处理_请教个选择集排序的问题 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

本帖最后由 vlisp2012 于 2013-10-9 16:27 编辑通过ssget获得的选择集的排序&#xff0c;无法很好的控制&#xff0c;每次下面材的时候&#xff0c;都是通过fence&#xff0c;画线选择板块&#xff0c;很繁琐。我想编辑一个程序&#xff0c;通过x坐标和y坐标来对面材(封闭多段线…

mockito模拟依赖注入_使用Mockito模拟自动装配的字段

mockito模拟依赖注入依赖注入是诸如Spring和EJB之类的Control容器反转的非常强大的功能。 将注入的值封装到私有字段中总是一个好主意。 但是&#xff0c;自动连线字段的封装会降低可测试性。 我喜欢Mockito解决此问题以模拟自动装配字段的方式。 将在示例中进行解释。 &#…

【渝粤教育】电大中专药物化学基础_1作业 题库

1.关于药物的分配系数对药效的影响&#xff0c;叙述正确的是&#xff08;&#xff09;。 A.分配系数愈小&#xff0c;药效愈好 B.分配系数愈大&#xff0c;药效愈好 C.分配系数愈小&#xff0c;药效愈低 D.分配系数愈大&#xff0c;药效愈低 E.分配系数适当&#xff0c;药效为好…

【渝粤教育】广东开放大学 动画原画设计 形成性考核 (22)

选择题 题目&#xff1a;默认情况下&#xff0c;用户在使用形状工具绘制形状时&#xff0c;形状图层的内容均以哪种形式填充。 题目&#xff1a;利用颜色取样器获取颜色时&#xff0c;最多可以创建多少个取样点 题目&#xff1a;哪种滤镜可以把图像变得柔和&#xff1f; 题目&a…

【渝粤题库】陕西师范大学200091 东方文学专题研究 作业

《东方文学专题》作业 一、单选题 1、&#xff08; &#xff09;是古代埃及的一部诗歌总集&#xff0c;也是世界上现存最古老的诗集和最早的书面文学作品。 A 《亡灵书》 B 《庄稼人的歌谣》 C 《荷马史诗》 D《神话》 2、&#xff08; &#xff09;被称为“史诗之王”&#xf…

java 80_【JavaWeb】80:js基础详解

今天是刘小爱自学Java的第80天。感谢你的观看&#xff0c;谢谢你。话不多说&#xff0c;开始今天的学习&#xff1a;JavaScript是一门编程语言&#xff0c;但凡是编程语言&#xff0c;其在基本语法上都是大同小异的。我们学了Java&#xff0c;那么再学习其它语言时&#xff0c;…

【渝粤题库】陕西师范大学200101 西方文学 作业(高起专)

《西方文学》作业 一&#xff0e;填空题 1.古希腊悲剧之父是 &#xff0c;他的代表作品是 。 2.法国人文主义文学最杰出的代表作家是 &#xff0c;他的代表作品是 。 3.法国批判现实主义文学的奠基人是 &#xff0c;他的代表作品是 。 4.易卜生的四大社会问题剧是 、 、 、 。 …

半年时间能学会php吗_4个月真的能学会PHP吗

4个月真的能学会PHP吗有些一直想来源码时代学习PHP学科的学员很好奇&#xff0c;这么多的内容&#xff0c;在5个月左右就全部学完&#xff0c;真的可以么?这几个月以后自己还是一问三不知怎么办?今天&#xff0c;我们就来说说学习PHP这件事。PHP是什么&#xff0c;应用得怎么…

【渝粤题库】陕西师范大学200651线性代数 作业(高起专、高起本)

《线性代数》作业 一、选择题 1&#xff0e;如果D&#xff0c;则行列式的值应为&#xff1a; A&#xff0e; 6D B&#xff0e;12D C&#xff0e;24D D&#xff0e;36D 2&#xff0e;设A 为n阶方阵&#xff0c;R&#xff08;A&#xff09;r<n,那么&#xff1a; A&#xff0e;…

【渝粤题库】陕西师范大学201381 国际经济法作业

《国际经济法》作业 一、单项选择题 1&#xff0e;在下列贸易术语中&#xff0c;应当由买方办理租船订舱手续的是哪种术语&#xff1f; A&#xff0e;FOB      B&#xff0e;CFR      C&#xff0e;CIP       D&#xff0e;DDP 2&#xff0e;《联合国国际货物买…

php manager iis 8,PHPManager2下载

PHP Manager 2.x 理论支持win10,win8,win7,Windows Server2008,Windows Server2012,Windows Server2012R2,Windows Server2016,,Windows Server2019与其对应的IIS版本.--PHP Manager 2.4 for IIS10,IIS8,IIS7 下载简单但功能强大具有独特功能的工具&#xff0c;可以处理所有细节…

【渝粤题库】陕西师范大学202012 刑事诉讼法专论 作业

《刑事诉讼法专论》作业 一、单项选择题 1.在刑事诉讼中&#xff0c;法官消极中立&#xff0c;通过当事人举证、辩论发现事实真相&#xff0c;并由当事人人推动诉讼进程。这种诉讼构造属于下列哪一种类型&#xff1f;&#xff08; &#xff09; A.职权主义  B.当事人主义  …

【渝粤题库】陕西师范大学202411 管理学基础 作业 (专升本、高起本、高起专)

《管理学基础》作业 一、名词解释 管理       2. 科学管理理论    3. 定性目标      4. 管理主体经济方法     6&#xff0e;规划        7&#xff0e;行政组织理论    8&#xff0e;高层目标管理环境     10&#xff0e;人际关系学说 …