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 {
// ...
}