Sobes.tech
Middle

Milyen láthatósági területek (scopes) léteznek a Spring-ben lévő bean-ek számára?

sobes.tech MI

Válasz az MI-től

A Spring Framework-ben több standard hatókör van a bean-ek számára:

  • singleton
  • prototype
  • request
  • session
  • application
  • websocket
Hatókör Leírás
singleton Egy példány a Spring kontextusban. Alapértelmezett.
prototype Minden kérésnél új példány jön létre.
request Minden HTTP kéréshez egy példány.
session Minden HTTP munkamenethez egy példány.
application Minden ServletContext-hez egy példány. Webes alkalmazások használják.
websocket Minden WebSocket munkamenethez egy példány.

A request, session, application és websocket hatókörök relevánsak a webkontektszben (pl. Spring MVC használatakor).

A hatókört az @Scope annotációval lehet megadni:

// Singleton példa
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("singleton") // Egyértelműen megadva, bár ez az alapértelmezett
public class SingletonBean {
    // ...
}
// Prototype példa
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

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