자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로
간단하게 스프링(Spring)이라고도 부름
동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있으며
대한민국 공공기간의 웹 서비스 개발 시 사용을 권장하고 있는
전자정부 프레임워크의 기반 기술로 쓰임
공식 API: https://docs.spring.io/spring/docs/5.1.5.RELEASE/spring-framework-reference/
스프링의 가장 큰 특징은 IOC, DI, POJO, PSA, AOP 를 꼽을 수 있음.
IoC (Incersion of Control) 제어반전
DI (Dependency Injection) 의존성 주입
POJO (Plain Old Java Object) 방식의 프레임워크
PSA(Portable Service Abstraction)
AOP (Aspect Oriented Programming) 관점지향프로그래밍
Core
DI 기능을 비록한 프레임 워크의 기반을 제공
Beans
BeanFactory 인터페이스를 통해 구현
expression
객체에 접근하고 객체를 조작하기 위한 언어를 제공
context
spring-core와 spring-beans 모듈을 확장해, 국제화, 이벤트 처리, 리소스 로딩,서블릿 컨테이너를 위한 컨텍스트 생성 등의 기능을 추가로 제공ApplicationContext 인터페이스를 통해 구현
context.support
Ehcache, 메일, 스케줄링, UI의 Velocity 기능 지원
aop
AOP Alliance에 호환되는 AOP 구현
aspects
AspectJ와 통합을 제공
web
파일 업로드, locale 처리 등 웹 통합 기능 제공원격 지원 기능중 웹 관련 기능 제공
web.servlet
스프링 MVC 제공jsp,Velocity에 대한 뷰 연동 지원
web.portlet
포틀릿 환경에서의 MVC 구현
jdbc
jdbc 프로그래밍을 위한 추상 레이어 제공jdbc 템플릿을 제공합으로써 간결한 jdbc프로그래밍 가능
orm
하이버네이트, JPA, iBatios, JDO 등 API를 위한 통합 레이어 제공. 스프링이 제공하는 트랜잭션 관리와의 연동을 지원
oxm
객체와 xml 사이의 매핑을 처리하기 위한 추상 레이어 제공. JAXB, Castor, XmlBeans, JiBX, XStream과의 연동을 지원한다
jms
JMS 메시지를 생성하고 수신하는 기능
test
JUnit, TestNG를 이용한 스프링 컴포넌트 테스트 지원
instrument
Instrumentation 지원 클래스 제공
instrument.tomcat
톰캣 서버를 위한 instrumentation 지원 클래스 제공.
asm
asm 라이브러리를 재패킹한 모듈