본문 바로가기

프레임워크/Spring

[프레임워크] <Spring>〈Maven〉DI

DI(Dependency Injection)

◎ 의존 주입

◎ 기존에는 개발자가 했지만 Spring에서는 Spring 컨테이너가한다.

IoC를 배울때에 함께 알아야하는 개념이다.

의존성

◎ 어떤 메서드를 수행할 떄, 다른 객체를 미리 new 해야하는 상황을 말한다.

생성자 주입(Constructor Injection)

◎ 강제성이 짙다.

◎ 생성자 주입할 때 에러가 발생하면 해당 객체는 생성되지 않기 때문에 필수적일 때 사용하는 방식이다.

 

<beans>
	<bean class="test.IPhone">
		<constructor-arg ref="aw" />
	</bean>
	<bean class="test.AppleWatch" id="aw"/>
</beans>

setter 주입

◎ 생성자 주입보다 덜 강제적이다.

◎ 기본 생성자가 필수이다.  

  ⇨ 기본 생성자 + setter

 

<beans>
	<bean class="test.IPhone">
    	<property name="watch" ref="aw">
    </bean>
    <bean class="test.AppleWatch" id="aw">
</beans>

리스트를 이용한 주입

<beans>
	<bean class ="test.TestBean">
    	<property name="testList">
        	<list>
            	<value>a</value>
                <value>b</value>
                <value>c</value>
            </list>
        </property>
    </bean>
</beans>

 

맵을 이용한 주입

<beans>
	<bean class ="test.TestBean">
    	<property name="testMap">
        	<map>
            	<entry>
                	<key><value>a</value></key>
                    <value>에이</value>
                </entry>
                <entry>
                	<key><value>b</value></key>
                    <value>비</value>
                </entry>
            </map>
        </property>
    </bean>
</beans>