Назад к вопросам
Junior — Middle
66
Могли бы вы объяснить, что означает аннотация @Primary в контексте Spring?
Ответ от нейросети
sobes.tech AI
Аннотация @Primary в Spring используется для указания предпочтительного бина, если в контексте есть несколько кандидатов для внедрения зависимости одного типа.
Когда Spring сталкивается с несколькими бинами одного типа и не может однозначно выбрать, какой внедрить, можно пометить один из них аннотацией @Primary. Тогда этот бин будет выбран по умолчанию.
Пример:
@Configuration
public class AppConfig {
@Bean
public Service serviceA() {
return new ServiceImplA();
}
@Bean
@Primary
public Service serviceB() {
return new ServiceImplB();
}
}
В этом примере, если где-то в коде требуется бин типа Service без уточнения, Spring внедрит serviceB, так как он помечен @Primary.
Это удобно для управления приоритетами бинов без необходимости явно указывать имя бина при внедрении.