Spring
자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크
Spring은 프레임워크로 라이브러리와는 차이점이 있다.
프레임워크와 라이브러리의 차이
- 이 둘은 흐름 제어권이 누구에게 있는가로 나뉜다.
프레임워크는 흐름 제어를 자기 자신이 하고 애플리케이션이 실행하는 데 있어 필요한 기능들을 개발자가 직접 작성한 코드를 호출하여 사용한다.
따라서, 프레임워크는 IoC(제어의 역전) 개념이 반드시 적용되어야만 한다.
스프링의 특징
스프링의 특징으로는 크게 4가지로 소개된다.
- 경량 컨테이너
스프링은 스프링 애플리케이션 컨텍스트라는 컨테이너를 가지고 있으며, 이 곳에서 객체들의 라이프사이클을 관리한다. 즉, 객체를 생성부터 소멸까지 관리한다.
- 제어의 역전(IoC)
제어의 역전 개념이 적용되어, 애플리케이션이 동작하는 데 있어 필요한 기능들을 개발자가 직접 작성한 코드들을 프레임워크가 호출하여 사용한다.
- 의존성 주입
컴포넌트가 다른 컴포넌트를 필요로 할 때 의존성을 가진다라고 할 수 있다. 스프링은 다른 컴포넌트를 필요로 하는 컴포넌트에게 의존성을 주입해준다.
의존성을 주입하는 방법으로는 크게 3가지가 있는데, 이 글을 참조하자.
- 관점 지향 프로그래밍(AOP)
어떤 기능들이 동작하는 데 있어 반복적으로 호출되는 코드들을 한 데 모아, 어떤 기능이 동작하기 전, 후 관점을 기준으로 호출되게끔 설정할 수 있다.
출처 : 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, https://cocoon1787.tistory.com/745