Middle
Aké existujú oblasti viditeľnosti (scopes) u beanov v Spring?
sobes.tech AI
Odpoveď od AI
V Spring Framework existuje niekoľko štandardných oblastí viditeľnosti beanov:
- singleton
- prototype
- request
- session
- application
- websocket
| Oblasť viditeľnosti | Popis |
|---|---|
| singleton | Jeden inštancia beana pre každý kontext Spring. Predvolené. |
| prototype | Nová inštancia beana sa vytvára pri každom požiadavke. |
| request | Jedna inštancia beana pre každý HTTP požiadavok. |
| session | Jedna inštancia beana pre každú HTTP reláciu. |
| application | Jedna inštancia beana pre každý ServletContext. Používa sa v webových aplikáciách. |
| websocket | Jedna inštancia beana pre každú WebSocket reláciu. |
Oblasti viditeľnosti request, session, application a websocket sú relevantné v webovom kontexte (napríklad pri použití Spring MVC).
Oblasť viditeľnosti možno špecifikovať pomocou anotácie @Scope:
// Príklad singleton
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component
@Scope("singleton") // Výslovne uvedené, aj keď je to predvolené
public class SingletonBean {
// ...
}
// Príklad prototype
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component
@Scope("prototype")
public class PrototypeBean {
// ...
}