Sobes.tech
Middle

Spring-те қандай ауқымдар (scope) білесіз?

sobes.tech AI

AI-дан жауап

Spring Framework-те бірнеше стандартты биндердің көрініс аймақтары бар:

  • singleton: Әрбір Spring-контейнер контекстінде бір экземпляр жасалады. Бұл әдепкі көрініс аймағы.
  • prototype: Әр сұрау (инъекция) кезінде жаңа бин экземпляры жасалады.
  • request: Әр HTTP сұрауы үшін бір экземпляр жасалады. Бұл тек Spring WebContext-те актуалды.
  • session: Әр HTTP сессиясы үшін бір экземпляр жасалады. Бұл тек Spring WebContext-те актуалды.
  • application: ServletContext-тің барлық өмірлік цикліне бір экземпляр жасалады. Бұл тек Spring WebContext-те актуалды.
  • websocket: Әр WebSocket-сессияның өмірлік цикліне бір компонент экземпляры жасалады. Бұл тек Spring WebSocket-те актуалды.

Көрініс аймағы көрсетілген бин жариялау мысалы:

@Component
@Scope("prototype") // Немесе @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class MyPrototypeBean {
    // ...
}

Веб-аймақтар үшін көрініс (request, session, application) әдетте @RequestScope, @SessionScope, @ApplicationScope аннотациялары пайдаланылады.