Sobes.tech
Назад к вопросам
Junior — Middle
84

Как выбрать и внедрить два отдельных экземпляра Bean одинакового типа в приложении Spring?

Компании, где спрашивали
Right Line

Ответ от нейросети

sobes.tech AI

В Spring можно создать два отдельных экземпляра Bean одного типа, присвоив им разные имена (идентификаторы) и внедрять их по имени с помощью аннотации @Qualifier.

Пример:

@Component("beanOne")
public class MyBean {
    // реализация
}

@Component("beanTwo")
public class MyBean {
    // другая реализация или конфигурация
}

// Внедрение
@Autowired
@Qualifier("beanOne")
private MyBean firstBean;

@Autowired
@Qualifier("beanTwo")
private MyBean secondBean;

Если используется конфигурация через @Bean:

@Configuration
public class AppConfig {
    @Bean("beanOne")
    public MyBean myBeanOne() {
        return new MyBean();
    }

    @Bean("beanTwo")
    public MyBean myBeanTwo() {
        return new MyBean();
    }
}

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