[Spring] 스프링 프레임워크(Spring Framework)의 구조

안나·2024년 1월 27일
0

Spring

목록 보기
7/16
post-thumbnail

✏️ 스프링 프레임워크


Java 기반 어플리케이션 개발을 지원하는 오픈소스 어플리케이션 프레임워크

  1. Core Container
  2. Data Access/Integration
  3. Web
  4. AOP, Aspects, Instrumentation, Messaging, Test

1. Core Container

서블릿의 생명 주기를 관리하는 서블릿 컨테이너와 비슷하게 bean의 생성과 관리를 해주는 컨테이너 역할을 한다.

설명모듈/아티팩트
Spring CoreCore 모듈은 DI와 IoC 패턴을 적용할 수 있는 기본적인 클래스들을 포함하며
항상 직간접적으로 Spring Core에 대한 종속성을 가지게 된다.
spring-core
Spring BeansBean 모듈은 모든 bean 객체의 생명주기를 관리한다..
빈 팩토리(BeanFactory)는 bean의 인스턴스를생성하거나 bean의 의존성 문제를 해결하는 역할을 가진다.
spring-beans
Spring ContextContext 모듈은 Bean 객체들의 의존성 주입을 담당한다.
Spring이 실행될때 Spring Context 모듈이 실행되며 ApplicaionContext라고 불린다.
spring-context
SpELEL(Expression Language, 표현 언어)을 확장하고 빈 속성 및 접근, 처리를 위한 언어를 제공한다.spring-expression

2. Data Access/Integration

데이터베이스, XML 또는 Messaging을 포함한 다양한 형태의 데이터에 접근하기 용이하도록 하는 모듈의 모음이다.

설명모듈/아티팩트
JDBC (Java Database Connectivity)Spring JDBC는 JDBC API에 대해 추상화를 제공한다. JdbcTemplate도 제공하여 데이터에 쉽게 접근 가능 하도록 한다.spring-jdbc
ORM (Object Relational Mapping)JPA (Java Persistence API), JDO (Java Data Objects), Hibernate와 같은ORM API를 위한 통합레이어를 제공한다.spring-orm
OXM (Object XML Mapping)JAXB, Castor, XMLBeans, JiBX, XStream과 같은Object/XML 매핑을 지원한다.spring-oxm
JMS (Java Message Service)메시지 생산(Producing)과 소비(Consuming)를 위한 기능을 제공한다.Spring Framework 4.1 부터는 spring-messaging과의 통합을 제공한다.spring-jms
Spring Transactions데이터베이스 뿐만 아니라 객체 트랜젝션을 균일하게 관리해준다. 프로그래밍 방식과 선언적 트랜잭션 관리를 모두 지원한다.spring-tx

3. Web

Web Application을 빌드할 때 사용하는 컴포넌트로, 자체 MVC 프레임워크인 Spring MVC를 제공한다.

설명모듈/아티팩트
Spring Web멀티파트 파일 업로드와 IoC 컨테이느를 초기화 하는 등  기본 웹 기능을 제공한다.
 다른 웹 프레임워크와의 통합을 제공한다.
spring-web
Spring Web Servlet자체 MVC 프레임워크를 제공한다. Spring MVC, REST 웹 서비스를 구현을 포함한다.spring-webmvc
Spring Web Sockets웹 소켓을 지원한다.spring-websocket
Portlet포틀릿 환경에서 사용할 MVC 구현을 제공한다.spring-webmvc-portlet

4. AOP, Aspects, Instrumentation, Messaging, Test

                         사용모듈/아티팩트 
AOPAOP(Aspect Oriented Programming, 관점지향 프로그래밍)에 대한 기본적인 기능을 제공한다.spring-aop
Aspects인기있는 AOP 프레임워크인 AspectJ와의 통합을 제공한다.spring-aspects
Instrument기본적인 instrumentation을 제공한다.(Byte Code Instrumentation: 런타임이나 로딩 때 클래스의 바이트코드를 변경하는 것)spring-instrument
Test단위 및 통합 테스트에 대한 기본적인 기능을 제공한다.spring-test
Messaging메시지 기반 애플리케이션을 작성할 수 있는 기능을 제공한다.spring-messaging







📎 참고 링크

0개의 댓글