java / intermediate
Snippet
Bedingtes Laden von Beans mit @ConditionalOnProperty
Dieses Snippet zeigt, wie eine Spring-Bean basierend auf einer Konfigurationseigenschaft bedingt geladen wird. Wenn 'app.feature.modern-mode' in application.properties auf 'true' gesetzt ist, wird die Bean erstellt; andernfalls wird sie ignoriert.
snippet.java
1
2
3
4
5
6
7
8
@Configurationpublic class FeatureConfig {@Bean@ConditionalOnProperty(name = "app.feature.modern-mode", havingValue = "true")public ModernService modernService() {return new ModernService();}}
spring
Erklärung
1
@ConditionalOnProperty(name = "app.feature.modern-mode", havingValue = "true")
Prüft, ob die Eigenschaft existiert und mit dem angegebenen Wert übereinstimmt, bevor die Bean registriert wird.
2
public ModernService modernService()
Die Factory-Methode, die Spring aufruft, um den Service zu instanziieren, wenn die Bedingung erfüllt ist.