Spring Framework의 개요

Spring 7개의 잘 정의된 모듈들로 구성되며 전체적으로 이들 모듈은 엔터프라이즈 애플리케이션 개발에 필요한 모든 것을 제공한다. 이는 애플리케이션이 완전히 Spring 프레임워크를 기반으로 해야 하는 것은 아니다. , 애플리케이션에 적합한 모듈을 선택하여 적용하고 나머지 모듈들은 무시해도 된다. Spring 모듈은 모두 핵심 컨테이너 위에 구축되어있다. 핵심 컨테이너는 Bean 생성, 설정, 관리하는 방법을 정의하는데 이는 곧 Spring의 근본적인 기능이다.

 

 

 

Spring Core

-       Spring 프레임워크의 핵심 기능을 제공한다.

-       코어 컨테이너의 주요 컴포넌트는 Bean-Factory(Factory 패턴의 구현)이다. BeanFactory Inversion of Control (IOC) 패턴을 사용하여 애플리케이션의 설정 / 의존성 스팩을 실제 애플리케이션 코드에서 분리시킨다.

 

Spring Context

-       spring을 컨테이너로 만든 것이 핵심 모듈의 BeanFactory라면, Spring을 프레임워크로 만든 것은 컨텍스트 모듈이다. 이 모듈은 국제화된 메시지, 애플리케이션 생명주기 이벤트, 유효성 검증 등을 지원함으로써 BeanFactory의 개념을 확장한다.
이 모듈은 이메일, JNDI 접근, EJB 연계, 리모팅, 스케쥴링 등과 같은 다수의 엔터프라이즈 서비스를 추가로 제공한다. 또한 템플릿 프레임워크와의 통합도 지원한다.

 

Spring DAO

-       Spring JDBC DAO 추상 레이어는 다른 데이터베이스 벤더들의 예외 핸들링과 오류 메시지를 관리하는 중요한 예외 계층을 제공한다. 이 예외 계층은 오류 핸들링을 간소화하고, 예외 코드의 양도 줄여준다. Spring DAO JDBC 예외는 일반 DAO 예외 계층에 순응한다.

 

Spring ORM

-       선언적 트랜잭션 관리와 같은 Spring이 제공하는 다른 모든 기능을 사용해서 혼합하여 모든 O/R매퍼를 사용 할수 있다.

-       프레임워크는 여러 ORM 프레임워크에 플러그인 되어, Object Relational (JDO, Hibernate, iBatis SQL Map)을 제공한다. 이 모든 것은 Spring의 일반 트랜잭션과 DAO 예외 계층에 순응한다.

 

Spring AOP

-       AOP 제휴 호환 aspect-지향 프로그래밍 구현물을 제공 (코드를 명백하게 분리하기 위한 메소드-인터셉터와 pointcut은 논리적으로 구별되어야 할 기능을 구현)

-       소스레벨 메타데이터 기능을 사용하여 .NET속성과 다소 비슷한 모든 종류의 행위적 정보를 코드와 결합

-       설정 관리 기능을 통해 aspect 지향 프로그래밍 기능을 Spring 프레임워크와 직접 통합시킨다. 따라서 Spring 프레임워크에서 관리되는 모든 객체에서 AOP가 가능하다. Spring AOP 모듈은 Spring 기반 애플리케이션에서 객체에 트랜잭션 관리 서비스를 제공한다.

-       Spring AOP에서는 EJB 컴포넌트에 의존하지 않고도 선언적 트랜잭션 관리를 애플리케이션과 결합할 수 있다.

 

Spring Web

-       멀티 파티 기능, 서블릿 리스너를 사용한 컨텍스트 초기화 그리고 웹-기반 애플리케이션 컨텍스트와 같은 기본적인 웹-기반 통합 기능들을 제공한다.

-       웹 컨텍스트 모듈은 애플리케이션 컨텍스트 모듈의 상단에 구현되어, 웹 기반 애플리케이션에 컨텍스트를 제공한다. Spring 프레임워크는 Jakarta Struts와의 통합을 지원한다.

-       웹 모듈은 다중 요청을 핸들링하고, 요청 매개변수를 도메인 객체로 바인딩하는 작업을 수월하게 한다.

 

Spring Web MVC

-       웹 애플리케이션을 위한 Model-View-Controller 구현물을 제공 (도메인 모델 코드와 Web Form사이의 분명한 구분을 제공하고 유효성 체크와 같은 Spring 프레임워크의 다른 모든 기능을 사용하도록 허용한다.)

 

MVC 프레임워크는 완전한 기능을 갖춘 MVC 구현이다. MVC 프레임워크는 전략 인터페이스를 통해 설정할 수 있으며, JSP, Velocity, Tiles, iText, POI 같은 다양한 뷰 기술을 허용한다.

Posted by 피곤키오
,