Sobes.tech
Middle

Какво е Spring Scope?

sobes.tech AI

Отговор от AI

В Spring Scope определя жизнения цикъл и обхвата на видимост на бина. Той управлява колко екземпляра от бина ще бъдат създадени и как ще бъдат достъпни.

Основни типове Scope:

  • singleton: Създава се един екземпляр на бина в контекста на приложението. Това е подразбиращият се Scope.
  • prototype: Всяка заявка създава нов екземпляр на бина.
  • request: За всяка HTTP заявка се създава един екземпляр на бина. Само за уеб приложения.
  • session: За всяка HTTP сесия се създава един екземпляр на бина. Само за уеб приложения.
  • application: Създава се един екземпляр на бина през целия жизнен цикъл на ServletContext. Само за уеб приложения.

Пример за декларация на бина с посочен Scope:

@Component
@Scope("prototype") // Посочване на scope като prototype
public class MyPrototypeBean {
    // ...
}

Или в XML конфигурация:

<bean id="myPrototypeBeanНачало" class="com.example.MyPrototypeBean" scope="prototype"/>

Изборът на подходящ Scope зависи от желаното поведение и състояние на бина. Singleton е подходящ за безсъстояние бинов, а prototype — за състояние или когато е необходима изолация на екземплярите. Request, session и application се използват в уеб контексти за управление на жизнения цикъл на биновете според заявките, сесиите или цялата уеб апликация.