Categories
Algorithm🧩
백준 📝
BookReview📕
CleanCode✨
Network 📨
Database 🗄
DevOps☁️
에러 일기📕
Etc💬
Fishy Fish 🎣
Spring🌱
의존관계 자동 주입(2)
조회한 빈이 필요한 경우
Map<String, Policy>: map의 키에 스프링 빈의 이름을 넣어주고 그 값은 Polict 타입으로 조회한 모든 스프링 빈을 담는다.List<Policy>: Polict타입으로 조회한 모든 스프링 빈을 담아준다.
자동, 수동의 올바른 실무 운영 기준
기본적으로 자동 기능을 사용
- 자동 빈을 사용해도 OCP, DIP를 지킬 수 있다.
그러면 언제 수동빈을 사용하는가?
- 업무 로직 빈: 웹을 지원하는 컨트롤러, 핵심 비즈니스 로직이 있는 서비스, 데이터 계층의 로직을 처리하는 리포지토리등이 모두 업무 로직 빈이다.
- 수가 많으며 유사패턴이 반복되므로 자동 기능을 적극 사용
- 기술 지원 빈: 기술적인 문제나 공통 관심사를 처리할 경우 사용. 데이터베이스 연결이나 공통 로그 처리 같은 업무 로직을 지원하기 위한 기술들.
- 보통 애플리케이션 전반에 걸쳐 영향을 미침.
- 따라서 잘 적용되고 있는지 확인하기 위해 수동빈 등록을 하는 것이 좋음
비즈니스 로직 중 다형성을 적극 사용하는 경우
- 다형성을 적극 사용하는 로직에서 자동 빈 등록을 사용하면 추상화 객체를 찾기 위해 여러 코드를 찾아봐야한다.
- 이런 경우 수동빈으로 등록하거나 자동으로 하려면 특정 패키지에 같이 묶어두면 찾기 쉬워진다.
[출처]