본문 바로가기
  • 기억의 유한함을 기록의 무한함으로✍️            예비 개발자가 꿈꾸는 공간 여기는 안나의 개발 블로그 💻
Programming/Spring

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

by 제가안난데여♪(´ε`*) 2024. 1. 28.
728x90

✏️ 스프링 프레임워크


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

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

 

1. Core Container

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

  설명 모듈/아티팩트
Spring Core Core 모듈은 DI와 IoC 패턴을 적용할 수 있는 기본적인 클래스들을 포함하며
항상 직간접적으로 Spring Core에 대한 종속성을 가지게 된다.
spring-core
Spring Beans Bean 모듈은 모든 bean 객체의 생명주기를 관리한다..
빈 팩토리(BeanFactory)는 bean의 인스턴스를생성하거나 bean의 의존성 문제를 해결하는 역할을 가진다.
spring-beans
Spring Context Context 모듈은 Bean 객체들의 의존성 주입을 담당한다.
Spring이 실행될때 Spring Context 모듈이 실행되며 ApplicaionContext라고 불린다.
spring-context
SpEL EL(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

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






   

📎 참고 링크

반응형