Junior — Middle
Ի՞նչ է նշանակում Spring-ում singleton և prototype արժեքներով բիների համար սահմանափակման սահմանումը և ինչպես է դա ազդում նրանց վարքագծի վրա։
sobes.tech AI
Պատասխան AI-ից
Spring-ում, տեսանելիության (scope) բինի սահմանումը որոշում է բինի օրինակակի կյանքի ժամկետը և տեսանելիությունը:
-
singleton — սա նախնական սահմանն է: Երբ պահանջվում է այդ scope-ով բին, Spring-ը նույն օրինակն է վերադարձնում ամբողջ կոնտեյների կյանքի ընթացքում: Սա նշանակում է, որ բինը ստեղծվում է մեկ անգամ և կրկնակի օգտագործվում:
-
prototype — յուրաքանչյուր պահանջի դեպքում ստեղծվում է նոր օրինակ: Spring-ը չի կառավարում այդ բիների կյանքի ցիկլը ստեղծումից հետո, ուստի յուրաքանչյուր
getBeanկանչը վերադարձնում է նոր օբյեկտ:
Արդյունք վարքագծի վրա:
- Singleton բիները խնայում են ռեսուրսները և ապահովում ընդհանուր վիճակ բոլոր օգտագործողների համար:
- Prototype բիները օգտակար են, երբ անհրաժեշտ է նոր օրինակ՝ անկախ վիճակով՝ յուրաքանչյուր օգտագործման համար:
Օրինակ:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// յուրաքանչյուր `getBean` կանչը ստեղծում է նոր օբյեկտ
}
@Component
@Scope("singleton")
public class MySingletonBean {
// մեկ օբյեկտ ամբողջ կոնտեյների համար
}
Այսպիսով, scope-ի ընտրությունը ազդում է այն վրա, թե ինչպես և երբ են ստեղծվում օբյեկտները և որքան ժամանակ են ապրում ծրագրում։