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