반응형
스프링 프레임워크 모듈에 대해서 알아보자.
- 스프링 모듈은 스프링 프레임워크가 현재 가장 많이 사용되는 가장 중요한 요소
- 그럼, 스프링 프레임워크 모듈 개수는?
- 20개 이상의 모듈을 갖고 있다고 함. ^^
- 아래는 Application Layer 별로 그룹화된 모듈 구성도이다.
스프링 프레임워크는 크게 아래와 같이 5개의 모듈로 구분할 수 있음.
- Spring core container
- 스프링 프레임워크 의존성 주입
- IoC(Inversion of Control) 컨테이너 및 애플리케이션 콘텍스트의 핵심 기능을 제공함.
-
모듈/아티팩트 설명 비고 spring-core - 스프링모듈이 사용하는 유틸리티를 말함. spring-beans - spring bean 지원
- spring core 와 함께 스프링 프레임워크의 핵심 기능인 의존성 주입을 제공함.
- BeanFactory의 구현을 포함함.spring-context - BeanFactory를 상속하는 Application context 를 구현
- 리소스 로드 및 국제화 지원을 제공함.spring-expression - EL을 확장하고 Bean 속성(배열 및 컬렉션포함) 및 접근처리를 위한 언어를 제공함.
* EL이란?
- Expression language의 약자
- JSP 2.0 스펙에 추가된 개념
- Crosscutting concerns
- 로깅및 보안과 같은 모든 Application Layer에 적용할 수 있음.
- AOP는 일반적으로 횡단 관심을 구현하는 데 사용함.
- 단위테스트와 통합 테스트는 모든 Layer 에 적용할 수 있으므로 해당 카테고리에 적합함.
-
모듈/아티팩트 설명 비고 spring-aop - 메소드 Interceptor와 point cut을 사용해 관점지향 프로그래밍에 대한 기본적인 지원을 제공함. spring-aspects - 가장 인기있는 AOP 프레임워크인 AspectJ와의 통합을 제공함. spring-instrument - 기본적인 Instrumentation 을 제공함. spring-test - 단위 및 통합 테스팅에 대한 기본 지원 제공
- Web
-
스프링은 스트럿츠와 같은 대중적인 웹 프레임워크와 훌륭한 통합을 제공하는 것 외에도 자체 MVC 프레임워크인 스프링 MVC 를 제공함.
-
모듈/아티팩트 설명 비고 spring-web - 멀티파트 file upload와 같은 기본 웹 기능을 제공함.
- 스트럿츠와 같은 다른 웹 프레임워크와의 통합을 지원함.spring-webmvc - 모든 기능을 갖춘 웹 MVC 프레임워크를 제공함.
- 참고로, 스프링 MVC 에는 REST 서비스를 구현하는 기능도 포함되어 있음.
-
- Bussiness
-
애플리케이션의 비즈니스 로직을 싱행하는 데 초점을 맞춤.
-
스프링에서는 일반적으로 비즈니스 로직이 POJO(Plain Old Java Object) 로 구현됨.
-
모듈/아티팩트 설명 비고 spring-tx - POJO 및 다른 클래스에 대한 선언적 트랜잭션 관리를 제공함.
-
- Data
-
일반적으로 데이터베이스 및 외부 인터페이스와 통신함.
-
모듈/아티팩트 설명 비고 spring-jdbc - 상용구 코드를 방지하기 위해 JDBC 를 추상화함. spring-orm - ORM 프레임워크 및 스펙(JPA, 하이버네이트등등)과의 통합을 제공함. spring-oxm - XML 매핑 통합 객체를 제공함.
- JAXB, Castor등과 같은 프레임워크를 지원함.spring-jms - 상용구 코드를 방지하기 위해 JMS를 추상화함.
-
결론
- 스프링 프레임워크가 현재 가장 많이 사용되는 가장 중요한 요소는 훌륭한 모듈화 때문인 것 같음.
- 스프링 프레임워크는 아래와 같이 크게 5가지의 모듈로 표현할 수 있음.
- 스프링 코어 컨테이너
- 횡단관심
- 웹
- 비즈니스
- 데이터
- 오늘도 스프링 프레임워크의 모듈에 대한 마술(?) 한가지 획득완료. 감사합니다. ^^
300x250
'좋아하는 것_매직IT > 1.spring' 카테고리의 다른 글
5.Spring, 의존성 주입에 대해서 이해한번 해봅시다. ^^ (0) | 2021.01.02 |
---|---|
4.Spring, 스프링 프레임워크 5.0 의 새로운 기능에 대해서 알아볼까요?^^ (0) | 2021.01.02 |
3.Spring, 스프링 프로젝트에는 어떤것이 있을까요? ^^ (0) | 2021.01.01 |
1.Spring, 도대체 무엇이 스프링 프레임워크일까? ^^ .. 한번 간단하게 알아보자! (0) | 2021.01.01 |
0.Spring, 도대체 무엇이 스프링 프레임워크일까? ^^ .. 한번 간단하게 알아보자! (0) | 2020.09.28 |