Mecanismul de Auto-Configuration din Spring Boot se bazează masiv pe adnotările din familia @Conditional. Acestea permit înregistrarea unui bean sau a unei clase de configurare doar dacă anumite condiții de mediu sunt satisfăcute.
@ConditionalOnProperty: Verifică dacă o anumită proprietate din fișierul de configurare are o valoare specifică (de exemplutrue).@ConditionalOnClass: Verifică dacă o clasă sau bibliotecă externă se află în classpath (de exemplu driverul PostgreSQL).@ConditionalOnMissingBean: Permite declararea unui bean de rezervă (fallback), care va fi creat doar dacă utilizatorul nu a definit deja propriul său bean cu acel tip.
Exemplu: Activare condiționată prin proprietăți și fallback bean
package ro.dexblog.demo.config;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AuditAutoConfiguration {
// Se creează doar dacă 'app.audit.enabled=true' în application.yml
@Bean
@ConditionalOnProperty(prefix = "app.audit", name = "enabled", havingValue = "true", matchIfMissing = false)
public AuditService databaseAuditService() {
return new DatabaseAuditService();
}
// Fallback: dacă nu există niciun AuditService definit, folosim NoOpAuditService
@Bean
@ConditionalOnMissingBean(AuditService.class)
public AuditService noOpAuditService() {
return new NoOpAuditService();
}
}
Întrebări & Exemple de Cod:
Adnotările @Conditional în Spring BootAi o nelămurire despre utilizarea comenzii
Adnotările @Conditional în Spring Bootsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.