[Spring] 스프링 프레임워크 주요 모듈 알아보기
2023. 5. 31. 14:47
✔️ 참고
https://docs.spring.io/spring-framework/docs/5.0.0.M5/spring-framework-reference/html/overview.html
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 |