사용자 삽입 이미지
The Code Container
- provides the fundamental functionality of the Spring
- org.springframework.beans.factory.BeanFactory
    - 스프링의 가장 기본이 되는 컨테이너.
    - 스프링 DI를 제공하는 기반 시설.
- Chapter 2에서 자세히 다룬다.

Application context module
- context module is what makes it a framework.
    - BeanFactory를 확장하여 다음의 기능들을 추가함.
        - I18N 메시징
        - 이벤트 핸들링
        - Validation
- supplies many enterprise services
    - email
    - JNDI
    - EJB와의 연동
    - templating frameworks(Velocity, FreeMarker)와의 연동

Spring’s AOP module
- serves as the basis for developing your own aspects for your Spring enabled application.
- AOP Alliance 인터페이스에 기반하였다.
- AspectJ 지원.
- Chapter 4에서 자세히 다룬다.

JDBC abstraction and the DAO module
- 반복 되는 코드를 추상화 시켜서 코드 작성을 간결하고 깔끔하게 할 수 있다.
- 각 DB 벤더들의 에러 코드를 의미가 있는 에러 메시지로 변환하여 RuntimeException으로 던지는 추상화 계층 제공.
- Chapter 5에서 자세히 다룬다.

Object-relational mapping (ORM) integration module
- JDBC를 직접 사용하는 대신 ORM 사용을 선호하는 분들을 위해 만들어둔 추상화 계층.
- Hibernate, JPA, JDO, iBATIS SQL Maps 지원.
- Chapter 5에서 자세히 다룬다.

Java Management Extensions (JMX)
- makes it easy to expose your application’s beans as JMX Mbeans.
- makes it possible to monitor and reconfigure a running application.
- Chapter 12에서 자세히 다룬다.

Java EE Connector API (JCA)
- Java EE Connection API (JCA)는 여러 메인 프레임과 DB를 포함하고 있는 엔터프라이즈 시스템들을 통합하기 위한 표준 API.
- JDBC 지원 기능과 마찬가지로 JCA 코딩에서 반복되는 부분을 추상화 시키는 형태로 지원.

The Spring MVC framework
- Model, View, Controller(MVC) 패턴은 UI와 애플리케이션 로직을 분리하기 위한 접근 방법
- 자체 MVC 기능 구현 함.
- Chapter 14, 15에서 자세히 다룬다.

Spring Portlet MVC
- portlet-based applications aggregate several bits of functionality on a single web page.
- Spring Portlet MVC builds on Spring MVC to provide a set of controllers that support Java’s portlet API.

Spring’s web module
- Spring MVC 와 Spring Portlet MVC를 지원하기 위해 기반이 되는 클래스들.
- Apache Struts 또는 Java-Server Faces (JSF)와 연동 지원.

Remoting
- 자신의 자바 객체를 remote 객체로 공개할 수 있으며, 외부의 remote 객체를 애플리케이션에 엮어서 마치 local - POJO 인 것처럼 사용하기 쉽게 해준다.
- RMI, Hessian, Burlap, JAX-RPC, Spring의 Http Invoker
- Chapter 8에서 자세히 다룬다.

Java Message Service (JMS)
- Remoting에 비해 보다 신뢰성있는 통신이 가능.
- helps you send messages to JMS message queues and topics.
- helps message-driven POJOs that are capable of consuming asynchronous messages.
- Chapter 10에서 자세히 다룬다.

참조 : Spring In Action 2nd edition