Sobes.tech
Junior — Middle

Mit jelent a hatókör meghatározása a Springben a singleton és prototype értékű bean-ek esetében, és hogyan befolyásolja ez a viselkedésüket?

sobes.tech MI

Válasz az MI-től

Springban a láthatósági (scope) tartomány határozza meg a bean példányának élettartamát és láthatóságát.

  • singleton — ez az alapértelmezett tartomány. Minden alkalommal, amikor ilyen scope-ú bean-t kérnek, a Spring ugyanazt a példányt adja vissza a konténer teljes életciklusa során. Ez azt jelenti, hogy a bean egyszer jön létre, és többször használható.

  • prototype — minden kérésnél új példány jön létre. A Spring nem kezeli ezeknek a bean-nek az életciklusát a létrehozásuk után, így minden getBean hívás új objektumot ad vissza.

Hatás a viselkedésre:

  • A singleton bean-ek erőforrásokat takarítanak meg, és közös állapotot biztosítanak minden felhasználó számára.
  • A prototype bean-ek akkor hasznosak, amikor minden használathoz szükség van egy új, független állapotú példányra.

Példa:

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // minden `getBean` hívás új objektumot hoz létre
}

@Component
@Scope("singleton")
public class MySingletonBean {
    // egy objektum az egész konténer számára
}

Így a scope kiválasztása befolyásolja, hogy mikor és hogyan jönnek létre az objektumok, és mennyi ideig élnek az alkalmazásban.