我有 2 颗豆子:
@Component("CryptoClient")
@ConditionalOnProperty(name = "enabled-client", havingValue = "AfsClient")
public class AfsClient implements CryptoClient {
Run Code Online (Sandbox Code Playgroud)
和
@Component("CryptoClient")
@ConditionalOnProperty(name = "enabled-client", havingValue = "JinnClient")
public class JinnClient implements CryptoClient {
Run Code Online (Sandbox Code Playgroud)
我更改属性值:
enabled-client: AfsClient或者enabled-client: JinnClient并使用这个bean。但现在我添加默认 bean(如果enabled-client属性不存在):
@Bean("CryptoClient")
@ConditionalOnProperty(name = "enabled-client", matchIfMissing = true)
public CryptoClient defaultClient(EDSService edsService) {
return new AfsClient(edsService);
}
Run Code Online (Sandbox Code Playgroud)
如果enabled-client属性不存在 - 它工作正常。但即使存在财产,它也能发挥作用。无论如何调用默认 bean。