[Spring] 스프링 프레임워크 주요 모듈 알아보기

2023. 5. 31. 14:47

✔️ 참고 

https://docs.spring.io/spring-framework/docs/5.0.0.M5/spring-framework-reference/html/overview.html

 

 

Spring Framework 모듈 아키텍처

 

1. 코어 컨테이너(Spring Core Container)

➡️ spring-core, spring-beans, spring-context-surpport, spring-expression(Spring Expression Language) 모듈로 구성됨 

  모듈/아티팩트 사용
Core spring-core 다른 스프링 모듈이 사용하는 유틸리티
Beans spring-beans 스프링 빈 지원, 의존성 주입 제공
빈 팩토리(Bean Factory) 구현 포함
Context spring-context-surpport 빈 팩토리를 상속하는 애플리케이션 컨텍스트를 구현하고 리소스 로드 및 국제화 지원 제공
SpEL spring-expression
(Spring Expression Language)
EL(표현 언어) 확장하고 빈 속성 및 접근, 처리를 위한 언어 제공

🔎 Bean(빈)?

: 스프링이 자바 프로그램의 제어권을 자신이 갖기 위해(IoC) 자바 객체를 자신만의 형태로 바꾸는 것 

: 스프링 안에서는 Bean = 객체 

 

🔎 Bean Factory(빈 팩토리)?

: 빈을 생성하고 관계를 설정하는 등 제어를 담당하는 IoC 오브젝트, Beans 패키지의 중심, Bean 기능 제공함 

 

🔎 Application Context(애플리케이션 컨텍스트)?
: 애플리케이션 전반에 걸쳐 모든 구성요소의 제어 작업을 담당하는 IoC 엔진

 

 

2. AOP, Aspect and Instrumentation

  모듈/ 아티팩트 사용
AOP spring-aop AOP에 대한 기본적인 기능 제공 
Aspect spring-aspects AspectJ AOP를 사용할 때 필요한 모듈
Instrument spring-instrument 특정 애플리케이션 서버에서 사용할 클래스 계측 지원 및 클래스 로더 구현 제공

 

3. Messaging

➡️ Message, MessageChannel, MessageHandler 등의 스프링 통합 프로젝트를 포함하고 있으며 메세지 기반 애플리케이션을 구축하는 역할

 

4. Data Access / Intergration(데이터 엑세스/ 통합)

  모듈/아티팩트 사용
JDBC(Java Database Connectivity) spring-jdbc - JDBC 추상화 제공
- Java JDBC 프로그래밍을 쉽게 할 수 있도록 제공하는 모듈
ORM(Object Relational Mapping) spring-orm - JPA, JDO(Java Data Objects), Hibernate와 같은 ORM API를 위한 통합 레이어 제공
- 간단한 선언적 트랜잭션 관리 기능을 비롯한 
Spring이 제공하는 다른 모든 기능을  O/R 매핑 프레임워크로 사용할 수 있게 함 
OXM(Object XML Mapping) spring-oxm - JAXB , XMLBeans 등과 같은 객체/XML 매핑의 추상화 계층을 제공
JMS(Java Message Service) spring-jms - 메세지 생성 및 사용을 위한 기능 제공
- 스프링 프레임워크 4.1부터 spring-messasing 모듈과 통합 제공
Transactions spring-tx - 특수 인터페이스를 구현하는 클래스와 모든 POJO에 대하여 선언적 트랜잭션 관리 지원

 

5. WEB(웹)

  모듈/아티팩트 사용
Web spring-web - 멀티파트 파일 업로드와 같은 기본 웹 기능 제공
- 다른 웹 프레임워크와 통합 제공
Servlet spring-webmvc - 자체 MVC 프레임워크 제공 
- Spring MVC, REST 웹 서비스 구현 포함
WebSocket spring-websocket - 웹 소켓 지원
Portlet spring-webmvc-portlet - 포틀릿 환경에서 사용할 MVC 구현 제공

 

6. Test

➡️ spring-test,  단위 및 통합 테스트에 대한 기본적인 기능 제공

➡️ JUnit, TensNg 이용하여 테스트 컨텍스트 프레임워크나 Mock 오브젝트 이용하여 테스트할 때 사용

'Spring > 기본' 카테고리의 다른 글

[Spring] @Configuration, @Component  (0) 2023.06.21
[Spring] 싱글톤 컨테이너  (1) 2023.06.11
[Spring] 스프링 컨테이너와 빈  (0) 2023.06.11
[Spring] AppConfigurer 클래스의 역할  (0) 2023.06.11

BELATED ARTICLES

more