În mod prestabilit, Spring instanțiază toate bean-urile de tip Singleton chiar la pornirea aplicației (Eager Initialization). Dacă o componentă realizează operații costisitoare (de exemplu încărcarea de modele AI grele în memorie sau inițializări de rețea complexe), adnotarea @Lazy amână crearea acelei instanțe până la prima sa utilizare efectivă.
De asemenea, adnotarea @Lazy plasată pe un parametru de constructor generează un proxy dinamic, rezolvând elegant scenariile nedorite de dependențe circulare temporare între două servicii.
Exemplu: Utilizarea @Lazy pe un serviciu cu inițializare costisitoare
package ro.dexblog.demo.service;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@Lazy
@Service
public class HeavyReportGeneratorService {
public HeavyReportGeneratorService() {
System.out.println("Instanțierea HeavyReportGeneratorService se produce doar la prima cerere de raport!");
}
public byte[] generatePdfReport() {
return new byte[]{1, 2, 3};
}
}
Întrebări & Exemple de Cod:
Adnotarea @Lazy în Spring BootAi o nelămurire despre utilizarea comenzii
Adnotarea @Lazy î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.