Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Есть ли возможность создать два 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

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

#singleton

#bean

#qualifier

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