Servis Bulucu Enjeksiyonu (ARCH4198)
Anahtar java.quality.service-locator · Önem warning · Kategori quality
Konteyneri/sağlayıcıyı enjekte edip servisleri çalışma zamanında ondan çözmek bağımlılıkları gizler ve test etmeyi zorlaştırır. Bağımlılıkları kurucu enjeksiyonuyla alın.
Hatalı
Bölüm başlığı “Hatalı”@Serviceclass OrderService { private final ApplicationContext ctx; OrderService(ApplicationContext ctx) { this.ctx = ctx; }
void place() { ctx.getBean(PaymentGateway.class).charge(); }}@Serviceclass OrderService { private final PaymentGateway gateway; OrderService(PaymentGateway gateway) { this.gateway = gateway; }
void place() { gateway.charge(); }}Düzeltme
Bölüm başlığı “Düzeltme”Konteyner yerine ihtiyaç duyulan servisleri doğrudan kurucu parametresi olarak enjekte edin.