Programing/Spring Framework

Spring Constructor Dependency Injection

BUST 2018. 9. 6. 22:06

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