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 се използват в уеб контексти за управление на жизнения цикъл на биновете според заявките, сесиите или цялата уеб апликация.