Встречается на собеседованиях • сегодня

Можно ли сделать Service одновременно и Singleton, и Prototype в Spring

В Spring бины по умолчанию являются синглтонами, но можно изменить scope на prototype. Однако один бин не может быть одновременно и тем, и другим.

Но можно использовать proxy для создания иллюзии:

java
@Service  
@Scope(value = "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS)  
public class MyService {  
    // Логика сервиса  
}  

При внедрении (@Autowired) Spring будет создавать новый экземпляр для каждого вызова через прокси. В остальных случаях (например, при прямом обращении) поведение зависит от контекста.

Альтернативно можно использовать ObjectProvider или Provider для ленивого создания prototype-бинов внутри синглтона.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы