같은 타입의 Bean이 두개일때

yesrin·2023년 6월 19일

Spring

목록 보기
3/18

같은 타입의 Bean이 두개라면?

@Primary를 붙인것은 기본으로 실행. (넓은 범위)

@Component
@Primary
public class Chicken implements Food {
    @Override
    public void eat() {
        System.out.println("치킨을 먹습니다.");
    }
}

범위가 더 좁은것을 우선적으로 실행한다.

@Qualifier("pizza") 좁은 범위 설정

@Component
@Qualifier("pizza")
public class Pizza implements Food {
    @Override
    public void eat() {
        System.out.println("피자를 먹습니다.");
    }
}
@SpringBootTest
public class BeenTest {


    @Autowired
    @Qualifier("pizza")
    Food food;

    @Test
    @DisplayName("Primary 와 Qualifier 우선순위 확인")
    void test1(){
        food.eat();

    }
}

실행결과
피자를 먹습니다.

profile
안녕하세요! 틀린 정보는 댓글 달아 주세요.

0개의 댓글