Spring Constructor Dependency Injection
- 생성자를 이용한 의존성 주입
- 공통 로직을 가지고 있지만 멤버 변수가 다른 경우에 활용을 할수 있다.
- XML Config인 경우
- constructor-arg 를 이용하여 의존성 주입을 할수 있다.
- Java Config인 경우
- 공통 로직은 Abstract Class로 구현을 하고 구현체는 그 클래스를 extend를 한다.
- 필요한 데이터는 super 키워드를 이용하여 주입을 한다.
@Component
public class Car {
@Autowired
public Car(Engine engine, Transmission transmission) {
this.engine = engine;
this.transmission = transmission;
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="toyota" class="com.baeldung.spring.domain.Car">
<constructor-arg index="0" ref="engine"/>
<constructor-arg index="1" ref="transmission"/>
</bean>
<bean id="engine" class="com.baeldung.spring.domain.Engine">
<constructor-arg index="0" value="v4"/>
<constructor-arg index="1" value="2"/>
</bean>
<bean id="transmission" class="com.baeldung.spring.domain.Transmission">
<constructor-arg value="sliding"/>
</bean>
</beans>
'Programing > Spring Framework' 카테고리의 다른 글
Spring Bean Life Cycle (0) | 2018.09.21 |
---|---|
Spring @Transactional Propagation (0) | 2018.09.10 |
Spring JDBC (0) | 2018.08.23 |
Attribute Converter를 이용한 커스텀 컬럼 사용하기 (0) | 2017.08.06 |
@Value 어노테이션 활용 (0) | 2017.06.28 |