Spring 모듈
- Spring Core (core container)
- spring 의 핵심 기능을 제공
- 코어 컨테이너의 주요 컴포넌트는 Bean-Factory(Factory 패턴의 구현)이다.
- BeanFactory는 Inversion of Control(IoC) 패턴을 사용하여 애플리케이션의 설정/의존성 스펙을 실제 어플리케이션 코드에서 분리
- Spring Core 바로 위에 있으면서 Spring Core에서 지원하는 기능 외의 추가적인 기능들과 좀 더 쉬운 개발이 가능하도록 지원하고 있다.
- 유저 인터페이스 및 타당성 검증이라는 어플리케이션의 기반 성능, JNDI 및 EJB의 지원, 메일 송수신 기능 등을 지원한다.
*JNDI(Java Naming and Directory Interface) - 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고하기 위한 자바 API
*EJB(Enterprise JavaBeans) - 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉 EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다.
- Spring Context
- Spring 을 컨테이너로 만든 것이 핵심 모듈의 BeanFactory 라면, Spring 을 프레임워크로 만든 것은 컨텍스트 모듈
- 국제화된 메시지, 애플리케이션 생명주기 이벤트, 유효성 검증 등을 지원함으로써 BeanFactory 의 개념을 확장
- 이메일, JNDI 접근, EJB 연계, 리모팅, 스케줄링 등과 같은 다수의 엔터프라이즈 서비스를 추가로 제공
- 템플릿 프레임워크와의 통합도 지원
- Spring AOP 모듈
- 설정 관리 기능을 통해 aspect 지향 프로그래밍 기능을 Spring 프레임워크와 직접 통합시킨다. 따라서 Spring 프레임워크에서 관리되는 모든 객체에서 AOP 가 기능
- Spring AOP 모듈은 Spring 기반 애플리케이션에서 객체에 트랜잭션 관리 서비스를 제공
- Spring AOP 에서는 EJB 컴포넌트에 의존하지 않고도 선언적 트랜잭션 관리를 애플리케이션과 결합할 수 있다.
- Spring DAO(Data Access Object)
- Spring JDBC DAO 추상 레이어는 다른 데이터베이스 벤더들의 예외 핸들링과 오류 메시지를 관리하는 중요한 예외 계층을 제공한다.
이 예외 계층은 오류 핸들링을 간소화하고 예외 코드의 양도 줄여준다.
- Spring DAO 의 JDBC 예외는 일반 DAO 예외 계층에 순응한다.
- JDBC 에 의한 데이터베이스 엑세스를 지원하고, 트랜잭션 관리의 기반이 된다.
- Spring ORM
- 프레임워크는 여러 ORM(Object/Relation Mapping) 프레임워크에 플러그인 되어 Object Relational 툴 (JDO, Hibernate, iBatis SQL Map) 을 제공한다.
- 이 모든 것은 Spring 의 일반 트랜잭션과 DAO 예외 계층에 순응한다.
- Spring Web Module
- 웹 컨텍스트 모듈은 애플리케이션 컨텍스트 모듈의 상단에 구현되어 웹 기반 애플리케이션에 컨텍스트를 제공한다.
- Spring 프레임워크는 Jakarta Struts 와의 통합을 지원한다.
- 웹 모듈은 다중 요청을 핸들링하고 요청 매개변수를 도메인 객체로 바인딩하는 작업을 수월하게 한다.
- Spring MVC framework
- MVC 프레임워크는 완전한 기능을 갖춘 MVC 구현이다.
- MVC 프레임워크는 전략 인터페이스를 통해 설정할 수 있으며 JSP, Velocity, Tiles, iText, POI 같은 다양한 뷰 기술을 허용한다.
출처. Spring Framework 스프링의 7가지 모듈