gpt4 book ai didi

java - Autowiring 构造函数是否会导致 Spring 创建该对象的至少一个实例?

转载 作者:行者123 更新时间:2023-12-02 01:06:26 24 4
gpt4 key购买 nike

我正在查看通过构造函数的 Autowiring 将对象分配给静态引用的代码:

@Component
class MySpringClass {
private static PaymentRepo paymentRepo;

@Autowired
MySpringClass(PaymentRepo repo) { MySpringClass.paymentRepo = repo; }

static void usePaymentRepoToDoStuff() { …. using paymentRepo ….. }
}

我读到不建议通过 Autowiring 分配静态引用。我没有做。不是我的代码。

我找不到一个地方可以显式创建 MySpringClass 的一个实例(但这是很多代码)。该代码工作可靠。

那么,@Autowired 是否会导致 Spring 创建至少一个 MySpringClass 实例,从而运行构造函数,即使从未在 Java 中显式调用过?否则,我会继续寻找并试图解决这个问题。谢谢。

最佳答案

@Component 在类上声明,将由 Spring 读取,并将实例化为 Spring Bean(默认情况下,将是 Singleton,因此只有一个实例)它将被添加到 Spring 应用程序上下文中。此外,如果您@Autowired,则可以在整个应用程序中使用MySpringClass

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/stereotype/Component.html

关于java - Autowiring 构造函数是否会导致 Spring 创建该对象的至少一个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59993517/

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