当前位置: 首页 > 网络应用技术

春季有哪种依赖注射方法?官方建议如何使用?

时间:2023-03-07 23:45:59 网络应用技术

  想法提示

  在使用春季开发的想法时,当您使用现场注释时,您会发现该想法会有一个警告提示:

  现场注射未注射

  inspering信息:春季团队建议:“始终在豆类中使用基于构造函数的依赖性注入。始终使用主张进行强制性依赖性“”。

  这就是翻译:

  不建议使用基于现场的注射方法。

  春季开发团队的建议:在您的弹簧豆中,您始终可以使用基于构造函数的方法进行依赖注入。对于必要的依赖性,请永远使用断言来确认。

  例如,以下代码:

  将光标放在各处。在快速修改它之后,代码将成为基于Constructionor的注入方法。修改后,它将进行修改:

  如果您遵循春季团队的建议,则应使用它来确认是否有必要。

  警告提示很简单,但是我认为了解为什么春季团队提出这样的建议更重要?基于该领域的注射方法有什么问题?

  首先,我们需要知道在春季有三种注入的方法:春季:

  SO称呼的现场注入是在Bean的变量上使用注释进行依赖注入。从本质上讲,它通过反射直接注入田间。这是我通常在开发中看到的最熟悉的方式。同时,这也是春季团队不建议的方式。例如:

  通过相应变量的方法完成依赖项,并在方法上使用注释。例如:

  注意:在以后的版本中,可以在不写书写的情况下编写六个人的注释。

  推荐春季靴基本教程和实际战斗示例:https://github.com/javastacks/javastack

  将所有必要的依赖项放在带有注释构造的参数中,并完成构造函数中相应变量的初始化。该方法基于构造函数的注入。例如:

  在以后的版本中,如果此类中只有一个构造函数,则无法在其上写入该构造函数。

  视野注射的好处很简单。此方法非常简单,代码看起来简单易懂。您的类可以专注于业务而不依赖注入。您只需要将其扔到变量上即可。您不需要特殊的构造函数或集合方法。依赖注入容器将为您提供所需的依赖项。

  基于现场注射的缺点,小子他也是小子,他也是小子

  尽管现场注射很简单,但会引起很多问题。这些问题通常会在我通常制定阅读项目代码时遇到。

  违反单一责任的原则很容易

  使用基于现场注入的方法,添加依赖项非常简单。即使您的班级中有十几个依赖性,您也可能会觉得没有问题。普通开发人员可能会不知不觉地为班级添加很多依赖依赖性。

  但是,当构造函数被注入时,当涉及到特定点时,构造函数中的参数显然无法发现某些东西是Ingrong。过多的依赖性通常意味着您的班级必须承担更多的责任,并且显然违反了责任单一职责的原则。

  这个问题在我们的项目代码中确实很常见。

  依赖注入和容器本身耦合

  依赖注入框架的核心思想之一是容器管理的容器不应依赖容器。还可以为其提供其依赖性。

  这个问题可以反映在:

  无法使用属性注入方法来构建难以言喻的对象(修改变量)

  

  简而言之,这是

  当然,您可以在同一类中使用这两种方法。构造函数注入更适合于针对非变异性的强制注射,并且固定器注入更适合于跨性别注射。

  让我们看一下春季推荐原因的原因。首先,注射是基于建设性方法的

  

  春季团队主张在注入中使用建设性方法,因为一方面,它可以将依赖项注入不变的变量(注意:修改变量),另一方面,它还可以确保这些变量的值将确保并非为null。此外,在构造函数可以确保它们在被称为时完全准备好后,依赖注入的组成部分(请注意:)通常代表出现的代码气味,此类可能承担太多的责任。

  对于基于二传手的注射,他们说:

  班级可以重新配置或重新注射。

  根据二传剂的注入,它仅应用于注入非必要的依赖性,同时,它应在类中为此依赖项提供合理的默认值。如果您使用setter来注入必要的依赖项,则会有代码中的空检查过多。使用setter注入的优势是,可以轻松更改或重新注射此依赖性。

  以上是本文的所有内容。我希望在阅读本文后,您将对春季的依赖注入有更深入的了解。