gpt4 book ai didi

spring - Spring中何时进行构造函数注入(inject)以及何时进行参数注入(inject)

转载 作者:行者123 更新时间:2023-12-02 08:05:59 25 4
gpt4 key购买 nike

我是个应届生,最近开始学习Spring。在Spring依赖注入(inject)中,我们可以通过两种方式注入(inject)bean,一种是通过构造函数,另一种是通过setter 方法。我的问题是,构造函数注入(inject)在什么情况下更好,对于什么情况setter方法注入(inject)比较好。我只关注在哪里使用?如果可能的话给我一个例子...等待您宝贵的回复..

最佳答案

还有第三种方法:字段注入(inject)。

您可以直接在(甚至是私有(private))字段应用注释@Resource@Inject@Autowire。该字段甚至不需要有 getter 或 setter。

如果您正在构建 Spring 应用程序,并且不打算在非 Spring 应用程序或库中使用这些类,那么字段注入(inject)足以满足 90% 的类。我更喜欢它,因为它的代码更少。

当然,如果您使用构造函数进行强制引用,那么在创建新实例时就无法忘记其中一个。但是(这是我的观点,与 Alef Arendsen 在他 3 年前的 Spring 2.0 博客文章“Setter injection versus constructor injection and the use of @Required"”中的观点不同)你有一个 spring bean,而不是一个简单的类。这个 bean 是由 spring 创建的,而不是直接创建的因此,如果您使用 @Resource@Inject@Autowire 作为字段或 setter,spring 也会检查它们,并且不放置 bean如果不能满足所有引用要求,则整个应用程序正在使用。

关于spring - Spring中何时进行构造函数注入(inject)以及何时进行参数注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15401730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com