Sobes.tech
Middle

Кои са съществуващите области на видимост (scopes) при биновете в Spring?

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