[SEB BE]Section 2. Spring Framework 모듈 아키텍처

박두팔이·2023년 2월 3일
0

스프링프레임워크

목록 보기
3/18

Spring Framework 모듈 아키텍처


코어 컨테이너

코어 컨테이너 구성

Core Container는,

  • spring-core
  • spring-beans
  • Spring Expression Language
  • spring-context

4가지 모듈로 구성된다.

💡 모듈(Module)이란?
Java에서는 일반적으로, 지원되는 여러가지 기능들을
목적에 맞게 그룹화 하여 묶어 놓은 것을 모듈이라고 부릅니다.
모듈들은 Java의 패키지 단위로 묶여 있으며, 이 패키지 안에는 관련 기능을 제공하기 위한 클래스들도 함께 포함되어 있다. 일반적으로 모듈은 재사용이 가능하도록 라이브러리 형태로 제공되는 경우가 많다.

  1. CoreBeans모듈
    Core는 Beans모듈은 IoC/DI 기능을 포함한 프레임워크의 기본 부분을 제공한다.

    Core는 BeaFactory를 기반으로 Bean을 제어할 수 있으며, Beans는 스프링컨테이너가 관리하는 JAVA객체이다.

  2. Context
    Context는 유효성을 검증하고 라이프 사이클 관리등의 역할을 한다.

  3. SpEL
    SpEL은 런타임에 개체그래프를 쿼리하고 조작할 수 있는 강력한 표현 언어를 제공한다.


AOP / Aspects / Instrumentation / Messaging

  1. AOP
    관점 지향 프로그래밍 관련 기능을 지원한다.
  2. Aspects
    AspectJ와의 통합을 제공한다.
  3. Instrumentation
    특정 애플리케이션 서버에서 사용할 클래스 지원 및 클래스 로더 구현을 제공한다.
  4. Messaging
    메세지 기반 app을 작성할 수 있는 Message, MessageChannel, MessageHandler를 제공한다.

Data Access/Integration

Data Access / Integration 영역에는,

  • JDBC
  • ORM
  • OXM
  • JMS
  • Transactions

총 5개의 모듈이 존재한다.

  1. JDBC
    자바 JDBC 프로그래밍을 쉽게 사용할 수 있도록 도와준다.
  2. ORM
    JPA, JDO, Hibernate를 포함한 ORM API를 위한 통합 레이어 제공한다.
  3. OXM
    JAXB, Castor, XMLBeans, JiBX, XStream과 같은 Object/XML 맵핑을 지원한다.
  4. JMS
    메시지 생성(producing), 사용(consuming)을 위한 기능을 제공하고, spring framework 4.1부터는 spring-messaging 모듈과의 통합을 제공한다.
  5. Transactions
    선언적 트랜잭션 관리를 제공한다.

Web

Web 영역에는 4가지의 모듈이 존재한다.

  • WebSocket
  • Portlet
  • Web
  1. WebSocket
    웹 소켓을 지원한다.
  2. Portlet
    포틀릿 환경에서 사용할 MVC 구현을 제공한다.
  3. Web
    멀티 파트 파일 업로드, 서블릿 리스너 등 웹 지향 통합 기능을 제공, HTTP 클라이언트와 Spring의 원격 지원을 위한 웹 부분을 제공한다.
profile
기억을 위한 기록 :>

0개의 댓글