gpt4 book ai didi

java - 从静态上下文调用 @Autowired 存储库

转载 作者:行者123 更新时间:2023-12-01 19:58:26 25 4
gpt4 key购买 nike

我有一个静态的 createEntity 方法,因为我需要从其他实体调用它,在这个方法中,我需要调用存储库,但从逻辑上讲我不能这样做,因为它不是静态的。

public static Client createEntity(EntityManager em) {
default_operation = operationRepository.save(OperationResource.createEntity(em));
}

我不会问我是否对此感到震惊,我尝试使用 @Autowired 构造函数作为建议的其他解决方案,但这不适用于存储库。

如果有人有想法或解决方法,我将不胜感激!

最佳答案

使用静态方法会导致问题(不仅在 Spring 中)。原因之一是类的 Autowiring 属性在静态上下文中不可用。它们仅在 Spring's lifecycle 的某些阶段注入(inject)。 .

您应该将包含 createEntity 方法的类声明为 Spring bean(例如使用 @Component)。然后,您可以在需要调用 createEntity 的所有其他类中注入(inject)此 bean(使用 @Autowired)。

关于java - 从静态上下文调用 @Autowired 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48691603/

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