Junior — Middle
Čime se razlikuje oblast vidljivosti Singleton i Prototype u kontekstu injekcija zavisnosti?
sobes.tech АИ
Одговор од АИ
U kontekstu injekcije zavisnosti, scope (opseg) definiše životni ciklus i broj objekata koji se kreiraju.
-
Singleton: objekat se kreira jednom tokom celokupnog životnog ciklusa aplikacije ili DI kontejnera. Sve zahteve za ovu zavisnost dobijaju istu instancu. Ovo je zgodno za servise koji moraju da čuvaju stanje ili budu zajednički.
-
Prototype: pri svakom zahtevu kreira se nova instanca objekta. Ovo je korisno kada je potrebna nezavisna instanca sa sopstvenim stanjem.
Primer:
// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
// jedna instanca za celu aplikaciju
}
// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
// nova instanca pri svakom zahtevu
}
Na ovaj način, Singleton obezbeđuje jedinstvenu instancu, dok Prototype pruža više nezavisnih instanci, što utiče na upravljanje stanjem i performanse aplikacije.