- Java 기반의 웹 프레임워크, JVM 위에 돌아가며, Apache 라이센스를 따름
- Spring이란 이름은 Java EE 개발 시절을 겨울로 빗대어 새로운 시작인 봄을 의미하는 뉘앙스로 지었다고 캄
구조

- Core : IoC와 DI 기능을 제공한다
- DAO : JDBC 추상 계층을 제공한다
- ORM : JPA, Hibernate와 같은 데이터베이스 API 기능을 제공한다
- AOP : 공통로직을 한군데서 관리하도록 제공한다
- Web : MVC, Webwork 등 어플리케이션 구현에 필요한 기능을 제공한다
- JEE : Java Enterprise Edition 기능을 제공한다
특징
IoC
- Inversion of Control, 제어 역전, 프레임워크가 코드를 제어하는 디자인 패턴
- IoC의 기본 특징은 아래와 같다
- Bean 객체 생명주기 관리 : Bean은 주로 ApplicationContext에 관리되며 다른 Bean과 상호작용 할 수 있다
- 의존성 주입 : Bean들 사이 의존성을 관리하고, 필요한 Bean을 자동으로 주입받을 수 있다
- 비즈니스 로직 집중 : 개발자가 작성한 코드를 프레임워크가 컨트롤하고, 개발자는 로직만 집중할 수 있다
DI
AOP
관련 프로젝트
Spring Boot
Spring Security
Spring Batch