부모타입으로 bean을 조회할때 만약 같은 부모를 가진 자식 bean이 다수 존재할 경우
부모타입으로만 조회시 bean중복 오류가 발생한다.
조회1 . bean호출시 "이름"을 같이 호출하여 특정한 bean하나만을 불러준다.
ac.getBean("rateDiscountPolicy", DiscountPolicy.class);
조회2. 구체적인 자식타입을 지정(단 비효율적이다)
ac.getBean(RateDiscountPolicy.class);
즉 부모값을 상속받아 구현된 자식의 타입을 구체적으로 명시해서 가져오는 방법
조회3. 부모타입으로 조회하되 Map으로 받아오기
Map<String , DiscountPolicy> beansOfType = ac.getBeansOfType(DiscountPolicy.class);
같은 부모를 가진 bean이 많을것을 대비해 Map으로 여러개를 받으면 오류가 발생하지 않는다.
조회4. 최상위 부모 Object로 조회하되 , Object를 상속받는 모든 Bean을 반환한다.
Map<String , Object> beansOfType = ac.getBeanOfType(Object.class);
등록된 Bean을 조회하는 방법,
bean이 하나일 경우 타입만으로 조회가 가능하지만 일반적으로 이름까지 붙여서 조회하고
부득이하게 타입으로만 조회할 경우 Map을 사용해서 오류를 방지한다.
Bean조회시 조회기준으로 역활(인터페이스)나 구현(클래스) 어느것으로 라도 조회는 가능하다,
'SpringBoot' 카테고리의 다른 글
10월 26일 SpringBoot Spring의 xml 설성 (0) | 2022.10.27 |
---|---|
10월25일 SpringBoot BeanFactory와 ApplicationContext (0) | 2022.10.26 |
10월 23일 SpringBoot 스프링으로 bean조회4 오류검증 (0) | 2022.10.24 |
10월 19일 SpringBoot 스프링으로 Bean조회 3 (0) | 2022.10.20 |
10월 18일 SpringBoot 스프링으로 Bean조회2 (0) | 2022.10.19 |