의존성(Dependency)란?
- 어떤 클래스가 자신의 임무를 다하기 위해 필요한 값(필드값)이나 사용할 다른 클래스와의 관계
- 예를들어, Car클래스가 있고 필드로 Tire 클래스에 대한 인스턴스 참조를 가지고 있으면, "Car 클래스가 Tire 클래스에 의존하고있다"라고 한다.
1 2 3 4 5 6 7 8 9 10 11 | public class Car { private Tire tire; public Car(Tire tire) { this.tire = tire; } public void setTire(Tire tire) { this.tire = tire; } } | cs |
의존성 주입 방법
- 스프링 설정 파일을 통한 의존성 주입
생성자를 통한 주입
- 생성자 주입은 <bean> 요소의 자식 요소로 <constructor-arg> 요소를 사용.
1 2 3 4 5 | <bean id="tireBean" class="sample.Tire"></bean> <bean id="carBean" class"sample.Car"> <constructor-arg ref="tireBean"></constructor-arg> </bean> | cs |
설정 메서드를 통한 주입
- 설정 메서드 주입은 <bean> 요소의 자식 요소로 <property> 요소를 사용.
1 2 3 4 5 | <bean id="tireBean" class="sample.Tire"></bean> <bean id="carBean" class"sample.Car"> <property name="tire" ref="tireBean"></property > </bean> | cs |
- 어노테이션을 이용한 의존성 주입
1 2 3 4 5 6 7 8 9 10 11 12 13 | @Configuration public class BeanConfig { @Bean public Tire tireBean(){ return new Tire(); } @Bean public Car carBean() { return new Car(); } } | cs |
'게으른개발자 > 공부' 카테고리의 다른 글
스프링부트 프로파일 (0) | 2019.01.13 |
---|---|
자바 스트림(Stream) (0) | 2019.01.09 |
자바 람다(Lambda) (0) | 2019.01.08 |
네스티드 클래스 (0) | 2019.01.07 |
메이븐(Maven)기반 스프링부트(Spring Boot)프로젝트 생성하기 By 인텔리제이(IntelliJ) (0) | 2018.12.25 |