gpt4 book ai didi

java - 使用 @ConditionalOnProperty 时没有限定类型的 bean

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

我有一个组件,我可以从 Spring Boot 应用程序中的 applikation.properties 启用/禁用它。

在我的 application.properties 中我有

wiki.enabled=false

在组件中看起来像这样

@Component
@ConditionalOnProperty("wiki.enabled")
public class WikiClient {
...
}

最后,在我使用 wikiclient 的其他类(class)中,我在构造函数中像这样 Autowiring 了它。

    @Autowired(required = false)
public MigrationManager(UserService userService, WikiClient wikiClient) {
...
}

我仍然遇到异常

No qualifying bean of type com.test.WikiClient

如果我启用该属性,它的工作方式就像启用该组件一样。

最佳答案

我通过将 wikiClient 参数移至属性并使用 @Autowired(required = false) 而不是将其放在构造函数中来解决它。正如 M. Deinum 在评论中所说。可选依赖项不应出现在构造函数中。

关于java - 使用 @ConditionalOnProperty 时没有限定类型的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39785254/

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