2013년 8월 11일 일요일

[ORACLEJAVA Community, 스프링교육, Spring Framework 3.2 강좌]Spring Framework 3.x Module(스프링 모듈)

스프링을 배우기 전에 전체 스프링에 대한 그림을 그려봅니다. 각 모듈이 이해는 되지 않더라도 저체틀을 이해 하도록 하세요~~

오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  

Spring Framework 3.x Module(스프링 모듈) 그림...

 
 

Core Container
:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 
spring framework의 가장 핵심 모듈 입니다.
Core Container Core, Beans, Context, EL(__EXPRESSION__ Language) 모듈들로 구성되어 있다.
Core 모듈과 Beans 모듈은 프레임웍의 기반이 되는 부분들로, IoC DI(Dependency Injection, 의존성주입) 기능을 제공한다. 주요컴포넌트인 BeanFactory는 팩토리 패턴을 철학적으로 구현해놓은 것으로, 프로그램에서 직접 싱글톤을 생성하지 않을 수 있게 해주며, 객체간의 의존관계를 실제 프로그램 로직에서부터 설정파일로 분리해낼 수 있게 해준다.(IoC 패턴을 사용하여 애플리케이션의 설정 및 의존성을 에플리케이션에서 분리한다)
Context 모듈은 Core 모듈과 Beans 모듈의 실체화된 부분을 제공하며, 객체에 대한 접근 방법을 JNDI 레지스트리와 유사하게 프레임웍 형식으로 제공한다. Beans 모듈의 기능을 상속받고, 이에 추가적으로 국제화(리소스 번들의 사용과 같은), JNDI, EJB, 이벤트 전이(event-propagation), 리소스 로딩, 서블릿 컨테이너와 같은 컨텍스트의 생성 기능들을 함께 제공한다
__EXPRESSION__ Language 모듈은 객체 그래프를 런타임시에 조회하고 조작할 수 있는 강력한 표현 언어 기능을 제공하며, JSP 2.1 스펙에서 사용하는 통합표현언어(unified EL)를 확장하고 있다
 
2. Data Access/Integration
JDBC, ORM, OXM, JMS, 트랜잭션 모듈들로 구성되어 있다.
JDBC 모듈은 JDBC개발을 위한 추상 레이어를 제공하여 데이터베이스의 종류에 따른 JDBC 구현코드와 에러 코드를 대신 다루어준다.(JDBC 템플릿을 제공함으로써 간결한 코드로 JDBC 프로그래밍을 할 수 있도록 돕는다)
ORM 모듈은 JPA, JDO, 하이버네이트(Hibernate), iBatis와 같이 잘 알려진 객체-관계매핑(object-relational mapping, ORM) API들에 대한 인티그레이션 레이어를 제공한다. ( 스프링이 제공하는 트랜잭션 관리와의 연동을 지원한다)
OXM 모듈은 JAXB, Castor, XMLBeans, JiBX, XStream과 같은 객체/XML 매핑(Object/XML mapping) 구현체에 대한 추상 레이어를 제공한다. 즉 객체와 XML 사이의 매핑을 처리하기 위한 추상 레이어를 제공한다.
JMS(Java Messaging Service) 모듈은 메시지의 생성과 소비 기능을 제공하며, Transaction 모듈은 프로그램적(programmatic) 또는 선언적(declarative) 트랜잭션 관리 기능을 제공한다
 
3. Web
웹레이어는 Web, Web-Servlet, Web-Struts, Web-Portlet 모듈들로 구성되어 있다.
스프링의 Web 모듈은 multipart 파일업로드, Locale처리, 서블릿 리스너를 사용한 IoC 컨테이너와 웹-애플리케이션 컨텍스트를 초기화 등의 기본적인 웹 관련 인티그레이션 기능들을 제공한다.
Web-Servlet 모듈은 웹 애플리케이션에 필요한 Spring MVC(model-view-controller) 구현체를 제공하며 JSP, Velocity에 대한 뷰연동을 지원한다.
Web-Struts 모듈은 스프링과 스트럿츠의 연동 기능을 제공하며 Web-Portlet 모듈은 포틀릿 환경에서 사용되는 MVC 구현을 제공한다.
 
4. AOP and Instrumentation
스프링의 AOP 모듈은 AOP Alliance의 규약에 호환되는 관점-지향 프로그래밍(aspect-oriented programming) 구현체를 제공하며, 메서드 인터셉터와 포인트컷을 사용해 코드를 기능별로 깔끔하게 분리될 수 있게 도와준다
Aspects 모듈은 AspectJ와의 인티그레이션을 제공하며, Instrumentation 모듈은 특정 애플리케이션 서버에서 사용되는 클래스로더(classloader) 구현체와 인스트루먼테이션(instrumentation) 기능을 제공한다.
 
5. Test
JUnit이나 TestNG를 이용한 스프링 컴포넌트의 테스트를 지원한다

댓글 없음:

댓글 쓰기