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 파일에 제공된다.
'Web > Spring' 카테고리의 다른 글
스프링(Spring) DI(Dependency Injection) - #2 (0) | 2013.11.02 |
---|---|
스프링(Spring) DI(Dependency Injection) - #1 (0) | 2013.10.30 |
스프링(Spring) IoC 컨테이너(Inversion of Control Container) (0) | 2013.10.30 |
스프링(Spring) 파일 다운로드(File Download) (6) | 2013.10.23 |
스프링(Spring) 파일 업로드(File Upload) (10) | 2013.10.23 |