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

时间:2016-09-30 06:43:48

标签: java spring-boot

我有一个组件,我可以从我的spring启动应用程序中的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

如果我启用该属性,它就像我启用了该组件一样。

1 个答案:

答案 0 :(得分:1)

我通过将wikiClient参数移动到属性并使用@Autowired(required = false)而不是在构造函数中使用它来解决它。就像M. Deinum在评论中所说的那样。可选的依赖项不应该在构造函数中。