Встречается на собеседованиях • сегодня
Как всегда создавать уникальный Bean
В Spring можно гарантировать уникальность бина несколькими способами:
1. **Аннотация `@Scope("prototype")`** – создаёт новый экземпляр при каждом запросе бина:
```java
@Bean
@Scope("prototype")
public MyBean myBean() {
return new MyBean();
}
```
2. **Использование `ObjectProvider`** – инжектит провайдер, который создаёт новый экземпляр при вызове `getObject()`:
```java
@Autowired
private ObjectProvider myBeanProvider;
public void useBean() {
MyBean bean = myBeanProvider.getObject();
}
```
3. **Фабричный метод** – ручное управление созданием через отдельный сервис:
```java
@Service
public class BeanFactory {
public MyBean createBean() {
return new MyBean();
}
}
```
Для потокобезопасности в prototype-бинах нужно либо избегать общего состояния, либо синхронизировать доступ. Singleton-бины по умолчанию уникальны в контексте.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы