스프링 빈 (3) 썸네일형 리스트형 @Autowired와 Collection 클래스(List, Map, etc.) 아래 포스팅에서 동일 타입의 빈들이 충돌할 때 어떻게 해결할 수 있는지 확인했습니다. 이번 포스팅은 의도적으로 해당 타입의 스프링 빈이 다 필요한 경우, 특히 동적으로 동일 타입의 스프링 빈이 선택되는 경우에는 어떻게 해결할 수 있을지 작성하였습니다. 이 경우에는 자바의 Collection 클래스를 이용하여 동일 타입의 모든 빈들을 저장할 수 있습니다. 코드를 통해 확인해 보겠습니다. // Product 인터페이스 public interface Product { int discount(); } // Product 상속(구현)하는 Computer 클래스 @Component public class Computer implements Product{ @Override public int discount() {.. 다양한 의존관계 주입 방법 (@Autowired) 스프링 빈끼리의 의존관계 주입은 크게 4가지 방법이 있습니다. 생성자 주입 수정자 주입(Setter 주입) 필드 주입 일반 메서드 주입 이번 포스팅은 각각을 이용하여 의존관계를 주입하는 방법에 대해서 알아보겠습니다. 생성자 주입 이름 그대로 생성자를 통해서 의존 관계를 주입받는 방법입니다. 생성자 호출시점에 딱 한 번만 호출되는 것이 보장됩니다. 불변, 필수 의존관계에 사용됩니다. 아래 코드처럼 생성자 위에 @Autowired를 붙여서 의존관계를 주입하면 됩니다. @Component public class OnlineOrder implements Order { Product product; @Autowired public OnlineOrder(Product product) { this.product = .. @ComponentScan으로 스프링 빈 스캔하기 앞의 포스팅까지는 @Configuration과 @Bean을 이용하여 아래와 같이 자바 설정 정보에 등록할 스프링 빈을 직접 만들어 스프링 컨테이너에 빈을 등록하였습니다. @Configuration public class AutoAppConfig { @Bean Product getBook(){ return new Book(); } @Bean Order getOrder(){ return new OnlineOrder(getBook()); } } [Book, OnlineOrder 클래스] 더보기 public interface Order {} public class OnlineOrder implements Order { Product product; public OnlineOrder(Product product).. 이전 1 다음