Inversion of Control
의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 만들어 사용하는 게 아니라, 주입받아 사용하는 사용하는 방법을 말 함. 스프링 IoC 컨테이너
- BeanFactory : 스프링 Ioc의 가장 최상위에 있는 interface
이것은 과연 빈 일까? no! 그냥 자바 빈이다.
public class Book {
private Date created;
private BookStatus bookStatus;
public Book(BookStatus bookStatus) {
this.bookStatus = bookStatus;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
}
이건 빈이다. - yes! @Repository라는 애노테이션을 붙였기 때문에 오토스캔을 통해 빈으로 등록이 된다.
@Repository
public class BookRepository {
public Book save(Book book){
return null;
}
}
- 애플리케이션 컴포넌트의 중앙 저장소.
- 빈 설정 설정 소스로부터 빈 정의를 읽어 들이고, 빈을 구성하고 제공한다.
빈 : 스프링 IoC 컨테이너가 관리하는 객체.
장점
- 의존성 관리
- 스코프
- 싱글톤: 하나
- 프로포토 타입: 매번 다른 객체
- 라이프사이클 인터페이스
https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-introduction
ApplicationContext
- BeanFactory
- 메시지 소스 처리 기능 (i18n)
- 이벤트 발행 기능
- 리소스 로딩 기능
...
'Spring > Spring' 카테고리의 다른 글
(SPRING) IoC 컨테이너 - @Autowired (2) | 2020.01.01 |
---|---|
(SPRING) IoC 컨테이너 - ApplicationContext와다양한 빈 설정 방법 (0) | 2020.01.01 |
(SPRING) 스프링 AOP : 애노테이션 기반 AOP (0) | 2019.12.25 |
(SPRING) 스프링 AOP : 프록시 기반 AOP (0) | 2019.12.25 |
(SPRING) 스프링 웹 애플리케이션 제거방법 (0) | 2019.12.25 |