SSONG Cloud
Dependency Injection 본문
1. Dependency Injection
: 객체 간의 의존관계를 외부 조립기가 수행
: 느슨한 결합의 주요 강점 - 객체는 인터페이스에 의한 의존 관계만을 알고 있고, 이 의존 관계는 구현 클래스에 대한 차이를 모르는채 서로 다른 구현으로 대체 가능
2. 스프링의 DI
: Spring Container가 DI 조립기 제공
: 스프링 설정파일으로 객체 간의 의존관계 설정
: Spring Container가 제공하는 API를 이용해 객체 사용
3. 스프링 빈 설정
① XML 문서 : XML 문서 형태로 빈의 설정 메타 정보 기술, <bean> 태그를 통해 세밀한 제어 가능
▶ Constructor-arg : <bean>의 하위태그로 설정한 bean 객체 또는 값을 생성자를 통해 주입하도록 설정
▶ Property : property를 통해 객체 또는 값을 주입 받음(setter method) / <bean>의 하위태그로 설정한 bean 객체 또는 값을 property를 통해 주입하도록 설정
② Annotation : 빈으로 사용될 클래스에 특별한 annotation을 부여해 자동으로 빈 등록가능
→ 반드시 component-scan 설정 필요
→ Stereotype annotation 종류
▶ @Repository : DAO 또는 Repository 클래스에 사용 / AOP의 적용대상을 선정하기 위해 사용
▶ @Service : Service Layer의 클래스 사용
▶ @Controller : MVC Controller에 사용 / 스프링 웹 서블릿에 의해 웹 요청을 처리하는 컨트롤러 빈으로 설정
▶ @Component : 위의 Layer 구분을 적용하기 어려운 경우에 설정
4. 스프링 빈 의존관계 설정 : annotation
① @Autowired : Spring Framework에 종속적이지만 정밀한 의존성 주입이 필요한 경우 유용
▶ 동일 타입 Bean이 여러개일 경우 @Qualifier("name")으로 식별 가능
② @Resource : 특정 Bean이 JNDI 리소스에 대한 Injection을 필요로 하는 경우 사용할 것을 권장
③ @Inject : 특정 Framework에 종속되지 않은 애플리케이션을 구성하기 위해 사용 권장 / 클래스패스 내에 JSR-330 라이브러리 파일 추가가 요구됨
5. 스프링 빈 객체 생명 주기
'프로그래밍 > Spring Framework' 카테고리의 다른 글
Spring MVC 실행순서 (0) | 2021.05.09 |
---|---|
Spring MVC 구성요소 (0) | 2021.05.09 |
Spring DI 용어 (0) | 2021.05.09 |
IoC & Container (0) | 2021.05.09 |
Spring Framework 개요 (0) | 2021.05.09 |