Sobes.tech
Middle

Ի՞նչ է Spring Scope-ը։

sobes.tech AI

Պատասխան AI-ից

Spring-ում Scope-ը սահմանում է բինի կյանքի ցիկլը և տեսանելիության տարածքը: Այն վերահսկում է, թե քանի օրինակ է ստեղծվելու բինից և ինչպես հասանելի կլինեն:

Հիմնական Scope տեսակները՝

  • singleton: Մի օրինակ բին ստեղծվում է ծրագրի կոնտեքստում: Սա նախնական Scope-ն է:
  • prototype: Յուրաքանչյուր պահանջով ստեղծվում է նոր բին օրինակ:
  • request: Յուրաքանչյուր HTTP պահանջով ստեղծվում է բին օրինակ: Միայն վեբ հավելվածներում:
  • session: Յուրաքանչյուր HTTP սեսիայով ստեղծվում է բին օրինակ: Միայն վեբ հավելվածներում:
  • application: ServletContext-ի ողջ կյանքի ցիկլի ընթացքում ստեղծվում է բին օրինակ: Միայն վեբ հավելվածներում:

Նմուշ՝ նշելով Scope:

@Component
@Scope("prototype") // Նշում է որպես prototype
public class MyPrototypeBean {
    // ...
}

Կամ XML կոնֆիգուրացիայում:

<bean id="myPrototypeBeanԱմիս" class="com.example.MyPrototypeBean" scope="prototype"/>

Ընտրությունը՝ համապատասխան Scope-ը, կախված է ցանկալի վարքագծից և բինի վիճակից: Singleton-ը հարմար է stateless բիների համար, իսկ prototype-ը՝ stateful կամ երբ անհրաժեշտ է օրինակների մեկուսացում: Request, session և application օգտագործվում են վեբ կոնտեքստերում՝ բիների կյանքի ցիկլը կառավարելու համար՝ ըստ պահանջների, սեսիաների կամ ամբողջ վեբ հավելվածի։