Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 재귀
- 알고리즘 그래프
- parseInt()
- 자바 순열 코드
- str to char array
- jquery 속성선택자
- java lambda
- 자바입출력
- 조합 재귀
- jquery 이벤트 처리
- Java
- 재귀함수
- 순열코드
- inner class
- 자바
- jquery dom 계층 선택자
- java 내부 클래스
- 서로소
- jquery 필터선택자
- 자바 조합 재귀
- 자바스크립트 이벤트중지
- java Collections.sort()
- 알고리즘
- 상속
- 후위표기
- 자바스크립트 이벤트처리
- char to str
- 자바 재귀 조합
- Interface
- 순열 재귀
Archives
- Today
- Total
유블로그
[Spring] IoC(Inversion of Control) & Container 본문
IoC
- 객체 지향 언어에서 Object 간의 연결 관계를 런타임에 결정하는 것을 말한다.
- -> 객체 생성을 Container 가 한다.
- DI(Dependency Injection) 이 IoC의 구현방법 중 하나이다.
Dependency Lookup
- 컨테이너가 lookup context를 통해서 필요한 resource 나 object를 얻는 방식이다.
- Lookup한 Object를 필요한 타입으로 Casting 해주어야 한다.
Dependency Injection
- Object에 lookup 코드를 사용하지 않고 컨테이너가 직접 의존 구조를 Object에 설정할 수 있도록 지정해주는 방식이다.
- Object가 컨테이너의 존재 여부를 알 필요가 없다.
- Lookup 관련 코드들이 Object 내에서 사라진다.
- Setter Injection과 Constructor Injection 등 여러가지 방법이 있다.
Container
- 객체의 생성, 사용, 소멸에 해당하는 라이프사이클을 담당한다.
- Dependency 객체를 제공한다.
- Thread 관리한다.
- 비즈니스 로직 외에 부가 기능들을 독립적으로 관리할 수 있다.
- 서비스 lookup이나 Configuration에 대한 일관성을 가진다.
- 서비스 객체를 사용하기 위해 각각 Factory 또는 Singleton 패턴을 직접 구현하지 않아도 된다.
Spring DI Container
- 이 컨테이너가 관리하는 객체를 빈(Bean)이라고 하고, 이 빈들의 생명주기를 관리하는 의미로 빈팩토리라고 한다.
- Bean Factory에 여러 가지 컨테이너 기능을 추가하여 ApplicationContext라 한다.
(간단히 정리하는)
DI 용어
- 빈 : 스프링이 IoC 방식으로 관리하는 오브젝트
- 빈 팩토리
- 스프링이 IoC를 담당하는 핵심 컨테이너
- Bean을 등록, 생성, 조회, 반환하는 기능을 담당
- BeanFactory를 바로 사용하지 않고 이를 확장한 ApplicationContext를 이용
- 애플리케이션 컨텍스트 : 스프링이 제공하는 애플리케이션 지원 기능을 모두 포함하는 IoC 컨테이너
'Spring' 카테고리의 다른 글
[Spring] DI (Dependency Injection) (0) | 2020.11.01 |
---|---|
[Spring] CORS policy : Cross-Origin Resource Sharing (0) | 2020.10.30 |
spring mvc 구조 프로젝트 에서 spring ajax 프로젝트로 바꾸기 (0) | 2020.10.28 |
[Spring-Boot] jsp 사용할 수 있게 dependency 주기 (0) | 2020.10.27 |
[Spring-Boot] 프로젝트 생성과 설정 (0) | 2020.10.27 |