Mediumspringscope
Какие scope у Spring Bean?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Scope — жизненный цикл bean-а.
- singleton (default) — один экземпляр на контейнер;
- prototype — новый экземпляр при каждом
getBean/inject; - request — один bean на HTTP request (web);
- session — один bean на HTTP session;
- application — один bean на ServletContext;
- websocket — один bean на WebSocket session.
@Component
@Scope("prototype")
class ShoppingCart { /* состояние per consumer */ }- Singleton inject в prototype — prototype создаётся один раз при inject;
- Решение:
@Lookup,ObjectFactory<T>,Provider<T>, или proxy-mode; @RequestScope,@SessionScope— сокращения;- В singleton — потокобезопасность на ответственности разработчика.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.