1. 스프링 프레임워크(Spring Framework)

- 자바 엔터프라이즈 어플리케이션 개발에 필요로 하는 기능을 제공하는 오픈소스 경량급 어플리케이션 프레임워크

- 스프링 IoC(Inversion of Control) 컨테이너 : 설정파일을 이용해서 어플리케이션을 구성하는 자바 객체를 생성하고 관리

- DI(Dependency Injection) : 설정파일이나 애노테이션을 통해 객체의 생명주기와 의존관계를 설정

- AOP(Aspect Oriented Programing) : 트랜잭션, 로깅, 보안과 같은 엔터프라이즈 서비스를 적용하고 깔끔한 코드를 유지

- POJO(Planin Old Java) : 자바 객체는 특정한 인터페이스를 구현하거나 클래스를 상속받지 않음

- 일관된 트랙잭션 처리 : JDBC, JTA 컨테이너 제공 트랜잭션 구분 없이 동일한 코드를 여러 환경에서 사용




2. 스프링 장점

- 단순함

- 목적을 이룰 수 있는 단순하고 명퀘한 접근 방법

- 가장 단순한 객체지향적 개발 모델인 POJO 프로그래밍

- 유연성, 확장성

- 다른 프레임워크와 편리하게 접목되서 사용




3. 스프링 모듈

- core : DI 기능을 비롯한 프레임워크의 기반을 제공

- beans : BeanFactory 인터페이스를 통해 구현

- expression : 객체에 접근하고 객체를 조작하기 위한 표현 언어 제공, 통합 EL을 확장

- context : core와 beans 모듈을 확장해서 국제화, 이벤트 처리, 리소스 로딩, 서블릿 컨테이너를 위한 컨텍스트 생성 등의 기능 제공, ApplicationContext 인터페이스를 통해 구현

- context.support : Ehcache, 메일, 스케줄링, UI의 Velocity 지원 기능 제공

- aop : AOP Alliance에 호환되는 AOP 구현을 제공

- aspects : AspectJ와의 통합을 제공

- web : 파일 업로드, Locale 처리 등 웹을 위한 통합 기능을 제공, 권격 지원 기능 중 웹 관련 기능을 제공

- web.servlet : 스프링 MVC를 제공, JSP, Velocity에 대한 뷰 연동을 지원

- web.struts : 스프링과 스트럿츠 연동 기능을 제공

- web.portlet : 포틀릿 화녁ㅇ에서 사용되는 MVC 구현 제공

- transaction : AOP를 이용한 선언적 트랜잭션 관리 및 코드를 이용한 트랜잭션 관리 기능 제공

- jdbc : JDBC 프로그래밍을 위한 추상 레이어를 제공, JDBC 템플릿을 제공함으로써 간결한 코드로 JDBC 프로그래밍을 할 수 있음

- orm : 하이버네이트, JPA, iBATIS, JDO 등 ORM API를 위한 통합 레이어를 제공, 스프링이 제공하는 트랜잭션 관리와의 연동 지원

- oxm : 객체와 XML 사이의 매핑을 처리하기 위한 추상 레이어를 제공, JAXB, Castor, XMLBeans, JiBX, XStream과의 연동 지원

- jms : JMS의 메시지를 생성하고 수신하는 기능을 제공

- test : JUnit이나 TestNG를 이용한 스프링 컴포넌트의 테스트를 지원

- instrument : Instrumentation 지원 클래스를 제공

- instrument.tomcat : 톰캣 서버를 위한 Instrumentation 지원 클래스를 제공

- asm : ASM 라이브러리를 재패키징 한 모듈




4. 외부 의존 모듈

- 하이버네이트, JPA, iBATIS, MYBATIS 등 여러 외부 라이브러리를 사용한다.

- spring-framework-.3.0.1.RELEASE-dependencies.zip 파일에 제공된다.

+ Recent posts