Sobes.tech
Junior — Middle

Wat betekent de definitie van de scope voor beans met singleton- en prototype-waarden in Spring, en hoe beïnvloedt dit hun gedrag?

sobes.tech AI

Antwoord van AI

In Spring bepaalt de scope van een bean de levensduur en zichtbaarheid van de bean-instantie.

  • singleton — dit is de standaard scope. Elke keer dat een bean met deze scope wordt opgevraagd, geeft Spring dezelfde instantie terug gedurende de hele levenscyclus van de container. Dit betekent dat de bean één keer wordt gemaakt en hergebruikt.

  • prototype — bij elke aanvraag wordt een nieuwe instantie van de bean gemaakt. Spring beheert de levenscyclus van deze beans niet na creatie, dus elke aanroep van getBean geeft een nieuw object.

Impact op gedrag:

  • Singleton beans besparen resources en bieden een gedeelde staat voor alle gebruikers.
  • Prototype beans zijn handig wanneer een nieuwe instantie met onafhankelijke staat nodig is voor elk gebruik.

Voorbeeld:

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // elke `getBean` oproep creëert een nieuw object
}

@Component
@Scope("singleton")
public class MySingletonBean {
    // één object voor de hele container
}

Dus, de keuze van scope beïnvloedt hoe en wanneer objecten worden gemaakt en hoe lang ze in de applicatie blijven.