SpringFramework의 특징
경량 컨테이너
- 스프링은 자바객체를 담고 있는 컨테이너이다.
- 스프링 컨테이너는 이들 자바 객체의 생성과 소멸 같은 라이프사이클을 관리
- 언제든지 스프링 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.
DI (Dependency Injection)
- 스프링은 설정 파일이나, 어노테이션을 통해 객체 간의 의존 관계를 설정한다.
- 따라서 객체는 의존하고 있는 객체를 직접 생성할 필요가 없다.
AOP (Aspect Oriented Programming)
- 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법
- 문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 관심 사항을 기준으로 프로그래밍 함으로서 공통 모듈을 여러 코드에 쉽게 적용할 수 있도록 한다.
POJO (Plain Old Java Object) 지원
- 특정 인터페이스를 구현하거나 또는 클래스를 상속하지 않는 일반 자바 객체 지원
- 스프링 컨테이너에 저장되는 자바객체는 특정한 인터페이스를 구현하거나, 클래스 상속 없이도 사용 가능
- 일반적인 자바 객체를 칭하기 위한 별칭
IoC (Inversion of Control)
- 자바의 객체 생성 및 의존관계의 제어권이 개발자가 아니라 Spring Container이 담당한다.
- 모든 객체의 제어권이 넘어간 것은 아니고 servler, EJB 에 대한 제어권을 제외한 나머지 객체 제어권은 개발자가 담당한다.