ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [개념공부] @Qualifier
    코딩공부/개념공부 2023. 2. 1. 22:46
    반응형

    Qualifier

    스프링은 @Autowired를 사용해 의존성을 주입한다

    bean설정 시 <contxet:annotation-config/>를 사용해 구디 bean 태그 안에 <constructor-arg>나 <property> 태그를 추가하지 않아도 스프링의 @Autowired 어노테이션이 적용된 생성자, 필드, 메소드에 대해 의존 자동 주입을 처리한다

    만약 동일한 타입을 가진 bean 객체가 두개가 있다면?
    =>
    * 스프링이 어떤 빈을 주입해야 하는지 알 수 없기 때문에 스프링 컨테이너를 초기화 하는 과정에서 Exception이 발생
        * @Autowired의 주입 대상이 하나여야 하는데 실제로는 두 개 이상의 빈이 존재해 주입할 때 사용할 객체를 선택 불가
        * 단, @Autowired가 적용된 필드나 설정 메서드의 property 이름과 같은 이름을 가진 빈 객체가 존재할 경우 이름이 같은 빈 객체를 주입받음
     < SO >
     이러한 문제를 해결하기 위해 Qualifier 어노테이션을 사용한다

    * @Qualifier
        * 사용할 의존 객체를 선택할 수 있도록 해줌
            * 설정에서 bean의 한정자 값을 설정
            * @Autowired가 적용된 주입 대상에 @Qualifier을 설정
                * 이 때 @Qualifier의 값으로 앞서 설정한 한정자를 사용한다.

    //// 스프링 @Autowired 적용시 의존 객체를 찾는 순서 ////

    1. 타입이 같은 bean 객체를 검색 -> 1개면 해당 bean객체를 사용
        * @Qualifier가 명시 되어있는 경우 같은 값을 갖는 bean 객체여야함
    2. 탕비이 같은 bean 객체가 두 개 이상이고 @Qualifier가 없는 경우 이름이 같은 빈 객체를 찾는다
        * 찾은 경우 그 객체를 사용
    3. 타입이 같은 bean 객체가 두 개 이상이면 @Qualifier로 지정한 bean 객체를 찾는다
        * 찾은 경우 그 객체를 사용
    4. 위 경우 모두 해당되지 않으면 컨테이너가 Exception을 발생시킨다. 




    출처 : https://n1tjrgns.tistory.com/163

    반응형

    '코딩공부 > 개념공부' 카테고리의 다른 글

    [개념공부 ]REST API  (0) 2022.09.16
    [개념공부]API  (0) 2022.09.08
    [개념공부]쿠키와 세션  (0) 2022.09.05
    [개념공부]JWT  (0) 2022.09.03
Designed by Tistory.