我有一个组件,可以在我的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先生在评论中说的那样。可选依赖项不应位于构造函数中。