1. 스프링이란 무엇인가?
- 스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크 이다.
2. 애플리케이션의 기본 틀 - 스프링 컨테이너
스프링은 스프링 컨테이너 또는 애플리케이션 컨텍스트라고 불리는 스프링 런타임 엔진을 제공한다. 스프링 컨테이너는 설정정보를 참고로 해서 애플리케이션을 구성하는 오브젝트를 생성하고 관리한다. 스프링 컨테이너는 독립적으로 동작할 수도 있지만 보통 웹 모듈에서 동작하는 서비스나 서블릿으로 등록해서 사용한다.
3. 공통 프로그래밍 모델 - IoC/DI, 서비스 추상화, AOP
프레임워크는 애플리케이션을 구성하는 오브젝트가 생성되고 동작하는 방식에 대한 틀을 제공해줄 뿐만 아니라, 애플리케이션 코드가 어떻게 작성돼야 하는지에 대한 기준도 제시해준다. 이런 틀을 보통 프로그래밍 모델이라고 한다. 스프링은 세 가지 핵심 프로그래밍 모델을 지원한다.
- IoC/DI
- 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델이다.
- 서비스 추상화
- 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어나며 유연한 애플리케이션을 만들 수 있게 해준다.
- AOP
- 애플리케이션 코드에 흩어져 있는 부가적인 기능을 독립적으로 모듈화 하는 프로그래밍 모델이다.
4. 기술 API
스프링의 모든 기술은 표준 자바 엔터프라이즈 플랫폼(Java EE)에 기반을 두고 있다. 표준 기술과 더불어 유명 오픈소스 기술과 주요 상용 기술에 대한 지원도 다양하게 제공된다.
5. 스프링의 장점
- 단순함(simplicity)
- 객체지향적인 개발 모델인 POJO 프로그래밍이다.
- 유연성(flexibility)
- 다른 많은 프레임워크와 편리하게 접목돼서 사용될 수 있다.(많은 서드파티 프레임워크 지원)
6. 책 구성
- 1부 : 스프링의 기본 원리와 핵심 기술 소개
- 2부 : 스프링의 개별 기술의 내용과 응용 방법
7. 사용환경
8. 스프링 3의 새로운 기능
- Java 5와 JavaEE 6
- 스프링 표현식 언어(SpEL)
- 자바 코드를 이용한 DI 설정과 DIJ
- OXM
- @MVC와 REST
- 내장형 DB 지원
- Converter, ConversionService, Formatter
출처 : 토비의 스프링 3