일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- sap mm
- Mac
- 유럽여행
- SAP ERP
- 오라클
- ABAP
- 자바스크립트
- SAP ABAP
- nodejs
- 파이썬
- Java
- 머신러닝
- 오라클 디비
- IT
- Programming
- Oracle DB
- db
- docker
- JavaScript
- 영어
- Python
- node.js
- 도커
- Spring Framework
- oracle
- 비지니스영어
- 노드
- SAP
- 딥러닝
- 자바
- Today
- Total
JIHYUN JEONG
[스프링 프레임워크/Spring Framework] Dependency Injection(DI) 04 본문
[스프링 프레임워크/Spring Framework] Dependency Injection(DI) 04
StopHyun 2013. 3. 15. 09:44□ Spring Framework 특징
5. Plan Old Java Object[POJO] 지원 : 특정라이브러리에 전혀 (상속)받지 않은 Object, 즉 어떤 환경에서든 사용할 수 있다. 재사용성이 극대화 된다. (ex-User 인터페이스), 단위 테스트 용이
6. 트랜잭션 처리를 위한 일관된 방법 제공 : 트랜잭션 매니저를 통해 , 트랜잭션을 설정만 하면 트랜잭션이 관리 되는 코드를 내부적으로 관리한다.
- 트랜잭션 관리는 서비스 계층이 해야 한다. And 서비스 계층은
Dependency Injection(DI)
※ Factory : 객체를 생성해 내는 역할을 함
※ bean : 스프링 컨테이너의 의해서 관리 되는 객체를 말함
□ 컨테이너의 유형 3가지
1 BeanFacory ( A )
↓ 상속
2 ApplicationContext (A B)
↓ 상속
3 WebApplicaionContext ( A B C )
□ Dependency Injection[DI]
○ 의존성 주입
○ Spring Framework가 지원하는 핵심 기능
○ 객체 사이의 의존 관계가 객체 자신이 아닌 외부(조립기)에 의해 설정됨
○ 컨테이너의 역할
• A 객체가 필요로 하는 의존 관계에 있는
Dependency Injection(DI)
□ DI – 의존 관계 이해하기
□ DI(Dependency Injection) 이란?
□ DI – Spring Bean과 IoC 컨테이너
○ String 빈(bean)이란?
• Spring이 제어권을 가지고 생성 및 객체간의 관계를 관리하는 객체 의미
○ IoC컨테이너 or Spring 컨테이너?
• Spring 빈의 생성과 관계 설정, 사용, 생명주기 관리 등을 관장하는 기능을 제공해주며 Spring의 주요 핵심 기능이므로 컨테이너라고도 함
□ 의존 객체간의 관계도를 적용하는 개발 방법
○ 직접 의존하는 객체를 코드에 명시하는 방법
• 단위 테스트가 어려움
• 의존 객체 변경 시 코드 수정이 불가피
○ Factory나 JNDI를 이용하여 검색하는 방법
• 단위 테스트가 어려움
• 실제 의존 객체와의 느슨한 의존성 대신 Factory나 JNDI와의 의존성 형성
○ 외부의 조립기(Assembler)를 이용하는 방법
• 단위 테스트 용이
• 느슨한 의존성
□ Spring의 Dependency Injection 방법
○ 객체간의 의존성을 설정 파일로 simple하게 설정 및 관리
□ Constructor Injection (예제)
○ 의존하는 빈 객체를 컨테이너로부터 생성자의 파라미터를 통해서 전달받는 방식
○ 클래스를 초기화 할 때 컨테이너로부터 의존 관계에 있는 특정 리소스인 빈 객체를 생성자를 통해서 할당 받는 방법
• 설정 파일에 <constructor-arg> 태그를 이용
• 방법1 – index로 지정하는 방법
- index는 0부터 시작
• 방법2- 타입으로 지정하는 방법
○ Constructor Injection (예제)
1. 생성자를 이용한 방법
- 참고 : com.asianaidt.sample1.constructor
2. setter를 이용한 방법
- 참고 : com.asianaidt.sample2.setter
□ Setter Injection
○ setXxx() 형태의 설정 메소드를 통해서 전달받는 방법으로 프로퍼티 설정 방식
○ 의존하는 객체를 전달 받을 setter 메소드를 작성
○ 설정파일에 <property> 태그를 이용
• 객체인 경우 < ref> 태그 이용
□ 컬렉션 타입의 프로퍼티 설정
□ List 타입의 프로퍼티 설정
○ List 타입예제
- 참고 : com.asianaidt.sample1.collection
※ value type은 제네릭을 쓰면 사용할 필요가 없다
※ set은 순서나 인덱스를 관리하지 않기 떄문에 중복된 값을 가질수 없다.
[ Hierarchy ]
Dependency Injection(DI)
'Information Technology > Spring ' 카테고리의 다른 글
[스프링 프레임워크/Spring Framework] POJO 06 (0) | 2013.03.18 |
---|---|
[스프링 프레임워크/Spring Framework] Annotation(어노테이션)/ AOP(Aspect Oriented Programming) 05 (0) | 2013.03.15 |
[스프링 프레임워크/Spring Framework] Spring Framework container Factory기능 예제 03 (0) | 2013.03.13 |
[스프링 프레임워크/Spring Framework] 이클립스+메이븐(eclipse + maven) 설치02 (0) | 2013.03.13 |
[스프링 프레임워크/Spring Framework] 개요 및 특징 01 (0) | 2013.03.13 |