Spring 03 - Spring Structure


스프링 구조

Structure
위 그림은 스프링 공식 문서에 나와있는 스프링 구조에 대한 그림이다. 이를 설명하자면 다음과 같다.

Core Container

Core

  • DI와 Ioc 패턴을 적용할 수 있는 기본적인 스프링 프레임워크 클래스들을 포함하는 핵심 모듈
  • 주로 어노테이션, 컨버터, 상수, 유틸리티 클래스등을 제공

Beans

  • 스프링 DI기능의 핵심인 bean Factory와 DI기능을 제공하는 모듈
  • Bean Factory통해 컨테이너 내 Bean 객체들을 관리

Context

  • Core and Beans를 견고히(solid)한 모듈
  • 국제화, 이벤트 전판, 리소스 로딩, 투명한 Context 생성 등을 제공
  • 컨텍스트를 만드는데 필요한 기능과 빈 스캐너, 자바 코드 설정 기능, 표현식, 스크립트 언어 지원등 주요한 기능을 포함

Expression Language

  • 객체 탐색을 실행 시에 구하거나(querying) 조작할 수 있도록 강력한 표현 언어를 제공

AOP and Instrumentation

AOP

  • 관점 지향 프로그래밍을 지원

Instrumentation

  • JVM에 에이전트를 추가하는 기능을 제공 그리고 정확히는 톰캣용 위빙 에이전트(weaving agent)를 제공
  • 톰캣은 클래스 로더 되는 클래스 파일을 변환한다.

Data Access/Integration

JDBC, ORM, Transaction등을 통하여 데이터에 쉽게 접근할수 있는 방법을 제공

JDBC

  • JDBC 기반하의 DAO 개발을 좀 더 쉽고, 일관된 방법으로 개발하는 것이 가능하도록 추상화된 레이어를 제공

ORM

  • Object Relation Mapping
  • 프레임워크인 Hibernate, iBatis, JDO, JPA와의 통합을 지원.
  • 내부적으로는 JDBC를 사용

OXM

  • Object/XML Mapping
  • Object와 XML 간의 변환을 위한 추상 계층을 제공
  • (JAXB, Castor, XMLBeans, JiBX, XStream 등)

JMS

  • Java Message Service
  • 메시징 처리를 위한 모듈을 제공

Transaction

  • 스프링의 데이터에 직접적인 트랜잭션 관리
  • 선언적인 트랜잭션 관리에 있어 일관된 추상화를 제공
  • DataAcssessException 예외 계층 구조와 트랜잭션 동기화 저장소 JCA기능을 제공하거나 포함

WEB

MVC 구현 기능을 제공하고, 웹 애플리케이션 이용에 편리한 기능등을 제공

Web

  • 기본적인 웹 기반을 위한 공통적 기능을 제공 및 정의한 모듈
  • 다중 FileUpload처리, 리스너와 웹 기반으로 하는 application context를 위한 IOC컨테이너의 초기화를 제공

Web-Servlet

  • 웹 어플리케이션 구현을 위한 Spring MVC를 제공, 전통적인 MVC와 @MVC기능을 모두 포함
  • Struts, WebSocket과 같은 프레임 워크의 통합을 지원한다

Web-WebSocket

  • WebSocket 프로그래밍을 지원하는 모듈

Web-Portlet

  • 포털 기반의 MVC 구현을 위한 모듈을 제공

Test

JUnit이나 TestNG와 같이 Spring Components를 테스팅 하는 모듈 테스트 기능

Next

그래서 다음은..
Container and @bean…