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
getBeanhí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.