Spring Framework란?
-
Spring Framework는 객체지향 언어의 특징을 갖는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다.
-
동적인 웹 사이트 개발을 위해 여러가지 서비스를 제공해준다.
ex) DI, AOP, MVC, JDBC
∴ Spring Framework는 확장성이 높고, 객체지향 언어의 특징을 가장 잘 살릴 수 있는 프레임워크
Spring Framework 특징
- 크기와 부하의 측면에서 가볍다.
- 자바 객체를 직접 관리
- 객체 생성, 소멸과 같은 life cycle 관리하며 Spring으로부터 필요한 객체를 얻어올 수 있다.
- Plain Old Java Object 방식의 프레임워크
- 일반적인 J2EE Framework에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속 받을 필요없이 기존에 존재하는 라이브러리 등을 지원해준다.
JE22(Java EE) : Java SE에 부가하여, 웹 애플리케이션 서버에서 동작하는 장애복구 및 분산 멀티티어를 제공하는 Java Software의 기능을 추가한 서버를 위한 플랫폼
- 의존성 주입을 지원
- 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
- 제어 반전을 지원
- 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드 호출할 수 있다.
- 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming) 지원
- 트랜잭션, 로깅, 보안과 같이 여러 모듈에서 공톡적으로 사용하는 기능을 분리하여 관리할 수 있다.
- 영속성과 관련된 다양한 서비스 지원
- iBATIS, 하이버네이트 등 완성도가 높은 Database 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다.
영속성 : 객체가 자신을 생성한 작업이 종료되었음에도 불구하고 지속적으로 존재하는 상태
Spring Framework 구조
참고 사이트
위키 백과 스프링프레임워크 https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%94%84%EB%A7%81_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC
Spring Framework 구조 그림
https://yoo-hyeok.tistory.com/129