Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Spring - работа с Бинами.

Евгений Зорин Ученик (135), закрыт 12 месяцев назад
У нас создаются бины от одного интерфейса какой bean отдаст нам спринг при обращении?
Лучший ответ
вариант холодно Мастер (1238) 12 месяцев назад
Если в Spring-контексте определено несколько бинов, которые реализуют один и тот же интерфейс, то при обращении к этому интерфейсу можно использовать аннотации `@Qualifier` или `@Primary`, чтобы указать, какой именно бин должен быть использован.

Аннотация `@Qualifier` позволяет указать конкретное имя бина, которое определено в контексте:

public interface MyInterface {}

@Component("MyFirstImplementation")
public class MyFirstImplementation {}

@Component("MySecondImplementation")
public class MySecondImplementation {}

@Service
public class MyService {
@Autowired
@Qualifier("MyFirstImplementation")
private MyInterface myInterface;
}


В данном примере мы определяем две реализации интерфейса `MyInterface` - `MyFirstImplementation` и `MySecondImplementation`. Затем, при инъекции бина в сервис `MyService`, мы используем аннотацию `@Qualifier`, чтобы указать, что нам нужен именно бин с именем `"MyFirstImplementation"`.

Аннотация `@Primary` позволяет указать один основной бин, который будет использован по умолчанию:

public interface MyInterface {}

@Component
@Primary
public class MyFirstImplementation {}

@Component
public class MySecondImplementation {}

@Service
public class MyService {
@Autowired
private MyInterface myInterface;
}


В данном примере мы определяем две реализации интерфейса `MyInterface` - `MyFirstImplementation` и `MySecondImplementation`. Однако, мы также указываем аннотацию `@Primary` для `MyFirstImplementation`, что делает его основным бином для этого интерфейса. При инъекции бина в сервис `MyService`, мы не указываем конкретное имя бина, поэтому будет использован `MyFirstImplementation` как основной бин.
АлександрИскусственный Интеллект (290690) 12 месяцев назад
сам-то понял что скопировал?
Остальные ответы
Александр Искусственный Интеллект (290690) 12 месяцев назад
каким образом "обращаешься"?

у бина своё вполне конкретное название (если только ты не постарался обозвать разные бины одинаковым погонялом... но тебе спринг уже при запуске по башке даст за такие дела...)
Похожие вопросы