Wat is het verschil tussen de scope Singleton en Prototype in de context van dependency injections?
sobes.tech AI
Antwoord van AI
In de context van dependency injection bepaalt de scope (reikwijdte) de levenscyclus en het aantal objectinstanties dat wordt gemaakt.
-
Singleton: het object wordt één keer gemaakt gedurende de hele levenscyclus van de applicatie of de DI-container. Alle verzoeken naar deze afhankelijkheid krijgen dezelfde instantie. Dit is handig voor services die toestand moeten behouden of gedeeld moeten worden.
-
Prototype: bij elk verzoek wordt een nieuwe instantie van het object gemaakt. Dit is nuttig wanneer een onafhankelijk object met zijn eigen toestand nodig is.
Voorbeeld:
// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
// één instantie voor de hele applicatie
}
// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
// nieuwe instantie bij elk verzoek
}
Op deze manier zorgt Singleton voor één enkele instantie, terwijl Prototype meerdere onafhankelijke instanties biedt, wat invloed heeft op het beheer van de toestand en de prestaties van de applicatie.