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

在我的application.properties中

wiki.enabled=false


而在组件看起来像这样

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


最后,在另一个我使用wikiclient的类中,我在构造函数中将其自动接线。

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


我还是例外

No qualifying bean of type com.test.WikiClient


如果启用该属性,则其工作方式与启用该组件时相同。

最佳答案

我通过将WikiClient参数移动到一个属性来解决它,并使用@Autowired(required = false)而不是将其包含在构造函数中。就像Deinum先生在评论中说的那样。可选依赖项不应位于构造函数中。

08-06 20:50