Sobes.tech
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-ի ընտրությունը ազդում է այն վրա, թե ինչպես և երբ են ստեղծվում օբյեկտները և որքան ժամանակ են ապրում ծրագրում։