Sobes.tech
Middle

Springдеги биндердин кайсы чөйрөлөрү (scopes) бар?

sobes.tech AI

AIден жооп

Spring Framework-де, бондар үчүн стандарттык көзөмөл аймактары бар:

  • singleton
  • prototype
  • request
  • session
  • application
  • websocket
Көзөмөл аймагы Түшүндүрмө
singleton Ар бир Spring контекст үчүн бир бон. Стандарттык.
prototype Ар бир суроо менен жаңы бон түзүлөт.
request Ар бир HTTP суроо үчүн бир бон.
session Ар бир HTTP сессиясы үчүн бир бон.
application Ар бир ServletContext контексти үчүн бир бон. Веб колдонмолор тарабынан колдонулат.
websocket Ар бир WebSocket сессиясы үчүн бир бон.

request, session, application жана websocket аймактары веб контекстте (мисалы, Spring MVC колдонулганда) актуалдуу.

Аймакты @Scope аннотациясы аркылуу көрсөтүүгө болот:

// singleton мисал
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("singleton") // Ачык көрсөтүлгөн, бирок ал стандарттык. |
public class SingletonBean {
    // ...
}
// prototype мисал
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("prototype")
public class PrototypeBean {
    // ...
}