Sobes.tech
Junior — Middle

Spring konteynerində iki eyni bean istifadə edərkən qarşıdurmanı necə qarşısını almaq olar?

sobes.tech Süni İntellekt

AI-dan cavab

Spring konteynerində, iki bean eyni adı (tanımlayıcı) ilə olarsa, konflikt yaranır. Konflikti qarşısını almaq üçün:

  • @Component("ad") annotasiyası və ya XML/Java konfiqurasiyasında müxtəlif adlar istifadə edin.
  • Asılılığı injektə edərkən @Qualifier annotasiyasından istifadə edərək, hansı bean-in istifadə olunacağını açıq şəkildə göstərin.
  • Bir bean-i @Primary edin, beləliklə, konflikt zamanı default olaraq istifadə ediləcək.

@Qualifier nümunəsi:

@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;
    }
}