스프링 3강 - DI를 이용한 객체 생성과 조립
November 07, 2018
3-1 스프링을 이용한 객체 생성과 조립
DI 비교
- DI를 활용하지 않은 코드
- 내가 필요한 객체를 내가 생성
// Main.java
MyCalculator myCalculator = new MyCalculator();
myCaculator.setCalculator(new Calculator());
- DI를 활용한 코드
- 외부에서 객체를 생성하고 주입
// Main.java
String configLocation = "classpath:applicationCTX.xml";
// xml파일에서 컨텍스트를 가져와서 ctx 변수에 담음
AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation);
// ctx에서 bean을 가져온다 getBean("bean id", 클래스명.class);
MyCalculator myCalculator = ctx.getBean("myCalculator", MyCalculator.class);
// 가져온 bean을 이용해 myCalculator 클래스 안에서 선언된 add 메서드 사용
myCalculator.add();
// xml 컨텍스트인 ctx를 닫아준다
ctx.close();
<!-- applicationCTX.xml -->
<beans>
<!-- MyCalculator 클래스에 대한 객체 생성 -->
<!-- id는 변수설정한 것, class는 패키지.클래스이름 -->
<bean id="myCalculator" class="com.javalec.ex.MyCalculator">
<!-- setter로 초기화하는 필드는 property로 설정-->
<property name="calculator">
<ref bean="calculator" />
</property>
<property name="firstNum" value="10"></property>
<property name="secondNum" value="2"></property>
</bean>
</beans>
참고자료
- 스프링과정3강 블스(김명호 강사)