[Spring] 조회한 빈이 모두 필요할 때에 대한 나름의 이해

2023. 10. 18. 18:01Spring

HashMap과 List를 이용하면 그 타입 빈을 생성자 주입을 통해서 모두 받을 수 있다. 

동적으로 빈을 선택해줄 때 되게 유용한 방법이다.

Code 값으로 파라미터에 대한 인자를 받고 받은 값을 키로 hashmap에 넣어주게 되면 해당하는 빈(객체)을 얻을 수 있는 것이다.

Map<String, DiscountPolicy>, List<DiscountPolicy> 처럼 사용한다. ChatGPT에 따르면 보통은 HashMap이나 LinkedHashMap을 사용한다고 한다.

그리고 AnnotationConfigApplicationContext 등록해줄 때 두 개 이상의 인자도 가능하다. 이때 concat개념으로 가져온다. 그리고 config파일이 아닌 class 파일도 넣을 수 있다. 그러면 거기에 대한 빈을 만들고 의존관계를 주입해준다. 물론 하나의 class만 넣으면 빈이 하나이므로 주입이 안될 것이다. 

 

Reference


https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55380

 

학습 페이지

 

www.inflearn.com