주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)
- 1. 주니어 개발자도 이해 할 수 있는
의존성 주입
(Dependency Injection)
2014. 11
Darion Kim
- 2. 나는 누구?
Darion Kim (김헌기)
디에스멘토링 연구소 수석
보
자칭 통신(통합의 신, God of
Integration)
hnki0104@me.com
https://www.facebook.com/
groups/serverside (율이아빠)
- 3. 이 문서를 모든
Freshman에게 바칩니다.
(for YMS, JHJ)
- 4. 아름다운 JVM 세상을 못
보셨으면 여기까지만 …
http://www.slideshare.net/hnki0104/bueatiful-jvm-world
- 7. 그럼 의존성 주입
(Dependency Injection)에
대하여 시작하겠습니다.
- 9. 사람 객체 만들기
머리A, 몸통, 팔, 다리 클래스 정의
사람 클래스 정의
사람 클래스 각각의 필드에 머리A, 몸통, 팔,
다리 클래스 합성
사람 클래스 안에서 머리A, 몸통, 팔, 다리 클
래스의 객체를 생성하고 각각의 필드에 설정
- 11. 사람 객체 생성
사람
클래스
머리
몸통
팔[]
다리[]
머리A
클래스
몸통
클래스
팔
클래스
다리
클래스
몸통
객체
사람
객체
머리
몸통
팔[]
다리[]
머리A
객체
팔-1
객체
팔-2
객체
다리-1
객체
다리-2
객체
- 15. 사람 객체 수정하기
사람 클래스의 머리 필드를 머리A 클
래스에서 머리B 클래스로 변경
사람 클래스를 수정해야 함
사람 클래스 합성에 영향 발생
- 16. 사람A 객체 생성
사람
클래스
머리
몸통
팔[]
다리[]
머리A
클래스
몸통
클래스
팔
클래스 다리
클래스
몸통
객체
사람
객체
머리
몸통
팔[]
다리[]
머리A
객체
팔-1
객체
팔-2
객체 다리-1
객체
다리-2
객체
머리B
클래스
머리B
객체
- 18. 사람 객체 만들기
머리A, 몸통, 팔, 다리 클래스 정의
사람 클래스 정의
사람 클래스의 각각의 필드와 머리A, 몸통,
팔, 다리 클래스의 의존성을 정의한 Bean
Context 작성
Bean Context 정보 기준으로 객체를 생성하고
의존성 주입
- 19. 그림으로 설명하면?
사람
클래스
머리
몸통
팔[]
다리[]
머리A
클래스
몸통
클래스
팔
클래스
다리
클래스
Bean Context
<bean id= 머리, class=머리A 클래스/>
<bean id=몸통, class=몸통 클래스/>
<bean id=팔, class=[팔 클래스/>
<bean id=다리, class=[다리 클래스/>
<bean id=사람, class=사람 클래스>
<property name=머리 value=머리>
<property name=몸통 value=몸통>
<property name=팔 value=팔>
<property name=다리 value=다리>
</bean>
- 20. 사람 객체 생성
사람
클래스
머리
몸통
팔[]
다리[]
머리A
클래스
몸통
클래스
팔
클래스
다리
클래스
몸통
객체
사람
객체
머리A
몸통
팔[]
다리[]
머리A
객체
팔-1
객체
팔-2
객체
다리-1
객체
다리-2
객체
Bean
Context
- 21. 사람 객체 수정하기
사람 클래스 머리 필드를 머리A 클래
스에서 머리B 클래스로 변경
Bean Context를 <bean id=머리 class=머
리B클래스>로 수정
사람 클래스에는 영향이 없음
- 22. 그림으로 설명하면?
사람
클래스
머리
몸통
팔[]
다리[]
머리A
클래스
머리B
클래스
팔
클래스
다리
클래스
Context
<bean id= 머리, class=머리B 클래스/>
<bean id=몸통, class=몸통 클래스/>
<bean id=팔, class=[팔 클래스/>
<bean id=다리, class=[다리 클래스/>
<bean id=사람, class=사람 클래스>
<property name=머리 value=머리>
<property name=몸통 value=몸통>
<property name=팔 value=팔>
<property name=다리 value=다리>
</bean>
몸통
클래스