Sobes.tech
Junior — Middle

Spring контейнеринде эки бирдей бин колдонууда кагылышууну кантип алдын алса болот?

sobes.tech AI

AIден жооп

Spring контейнеринде, эгер эки бин бирдей атка (идентификаторго) ээ болсо, конфликт пайда болот. Конфликтти алдын алуу үчүн:

  • @Component("аты") аннотациясы же XML/Java конфигурациясында ар башка аттарды колдонуу.
  • Тийиштүү болгон учурда @Qualifier аннотациясын колдонуп, кайсы бин колдонулушу керек экенин так көрсөтүү.
  • Бир бинди @Primary кылуу, ошондо ал конфликт болгондо автоматтык түрдө колдонулат.

Мисал менен @Qualifier:

@Component("beanOne")
public class BeanOne {}

@Component("beanTwo")
public class BeanTwo {}

@Service
public class MyService {
    private final BeanOne beanOne;

    public MyService(@Qualifier("beanOne") BeanOne beanOne) {
        this.beanOne = beanOne;
    }
}