Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Spring: singleton, bean, qualifier

Есть ли возможность создать два Singleton'а в Spring?

Этот вопрос проверяет знание концепции синглтона (singleton) в Spring и методов для создания нескольких экземпляров одного класса.

Короткий ответ

В Spring можно создать два бина синглтона, если они имеют разные идентификаторы. Это можно сделать через явную регистрацию бинов с разными именами в конфигурации.

Длинный ответ

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

Способы создания:

  • Через явное указание в конфигурации:

    @Configuration
    public class AppConfig {
        	@Bean(name = "beanOne")
        	public MyBean myBeanOne() {
            	return new MyBean();
        	}
    
        	@Bean(name = "beanTwo")
        	public MyBean myBeanTwo() {
            	return new MyBean();
        	}
    }
  • Через использование аннотации @Qualifier: Можно указать, какой бин использовать, если их несколько.

    @Autowired
    @Qualifier("beanOne")
    private MyBean myBean;

Ключевые аспекты:

  • Каждый бин с разным именем создается один раз (для каждого имени) в контейнере Spring.

  • Это не нарушает принцип синглтона, так как каждый бин по-прежнему уникален в рамках своего идентификатора.

Область видимости: Если используется область видимости prototype, для каждого запроса будет создаваться новый экземпляр, но это уже не синглтон.

Заключение:
Да, можно создать два бина синглтона, если у них разные идентификаторы. Это полезно для случаев, когда нужно настроить один и тот же класс по-разному.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Spring

    Spring

Ключевые слова

#singleton

#bean

#qualifier

Подпишись на Java Developer в телеграм