[Spring] Spring Framework 개요
[Spring] Spring Framework
Spring Framework
Spring MVC
- Web Application 개발을 위한 Framework
- POJO(Plain Old Java Object) 형태로 구현
- Annotation 기반 설정
- Servlet API 추상화
- Spring DI Container와 연계
1. Third-Party Library
1) Jackson : JSON 처리
2) Apache Tiles, Freemarker : 템플릿 엔진
3) Rome : RSS, Feed 처리
4) JasperReports : Repoter 출력
5) Joda-Time : 날짜, 시간 정보 처리
2. Action 기반 framework(Spring MVC, Struts)
- 요청 -> action 결정 -> action 결과 응답 반환
- 구조 단순, 확장성 높음
3. Component 기반 framework(JSF : Java Server Faces)
- 요청, 응답 추상화하고 화면을 구성하는 Component기반으로 Web Application을 개발하는 framework
- 재사용성 높음
Spring Security
- 다양한 인증 방식
1) Basic, Digest
2) X.509 인증서
3) LDAP
4) Open ID
- CSRF 대응 기능
- Security HTTP Response Header 출력 기능
- 세션 관리
Spring Data
- Database, NoSQL, Key-Value 저장소 등에 쉽게 접근할 수 있게 해주는 framework
- Umbrella Project
1) Spring Data Commons : 기본 적인 Repository 인터페이스 제공
2) Spring Data JPA :JPA(Java Persistence API)를 이용해 데이터에 접근
3) Spring Data MongoDB/Redis/Solr
Spring Batch
- Batch application 개발을 위한 경량 framework
Spring Integration
- EIP(Enterprise Integration Patterns), 시스템 연계 아키텍쳐 패턴에 기초해 연계 Application을 쉽게 개발할 수 있게 도와주는 framework
Spring Cloud
- 분산 환경에서 클라우드 환경에 최적화된 Application을 개발하기 위한 framework
1. Spring Cloud Config
- Profile, property 정보를 외부 환경에서 관리하고 배포하는 구조 제공
2. Spring Cloud Netflix
- Netflix가 제공하는 다양한 오픈 소스 소프트웨어 사용 구조 제공
3. Spring Cloud Bus
- 다양한 백엔드 환경에 접속하기 위한 구조 제공
Spring IO Platform
- Spring 관련 라이브러리나 서드 파티 라이브러리 버전을 결정하고, 의존 관계를 해결하기 위한 스프링 프로젝트
Spring Boot
- 최소한의 설정으로 Production 레벨의 Application을 쉽게 개발할 수 있게 하는 스프링 프로젝트
- XML이나 Java-based configuration을 이용한 bean 정의, servlet 설정이 필요 없음