Sobes.tech
Middle

Kas ir Spring Scope?

sobes.tech AI

Atbilde no AI

Springā Scope definē dzīves ciklu un redzamības jomu. Tas kontrolē, cik eksemplāru tiks izveidots un kā tie būs pieejami.

Galvenie Scope tipi:

  • singleton: vienu eksemplāru izveido lietojumprogrammas kontekstā. Tas ir noklusējuma Scope.
  • prototype: katrā pieprasījumā tiek izveidots jauns eksemplārs.
  • request: katram HTTP pieprasījumam tiek izveidots viens eksemplārs. Tikai tīmekļa lietojumprogrammās.
  • session: katrai HTTP sesijai tiek izveidots viens eksemplārs. Tikai tīmekļa lietojumprogrammās.
  • application: visā ServletContext dzīves cikla laikā tiek izveidots viens eksemplārs. Tikai tīmekļa lietojumprogrammās.

Piemērs, kā deklarēt beanu ar norādītu Scope:

@Component
@Scope("prototype") // Norāda scope kā prototype
public class MyPrototypeBean {
    // ...
}

Vai XML konfigurācijā:

<bean id="myPrototypeBeanSākums" class="com.example.MyPrototypeBean" scope="prototype"/>

Pareiza Scope izvēle ir atkarīga no vēlamās uzvedības un stāvokļa. Singleton ir piemērots bezvalstiskiem beaniem, bet prototype — ar stāvokli vai kad nepieciešama instanču izolācija. Request, session un application tiek izmantoti tīmekļa kontekstos, lai pārvaldītu beanu dzīves ciklu atbilstoši pieprasījumiem, sesijām vai visai tīmekļa lietojumprogrammai.