로드 존슨이 2002년에 선보인 소스코드가 시작

자바 언어 기반의 프레임 워크 객체지향 언어가 가진 강력한 특징을 살려내는 프레임 워크

특징

  1. POJO(Plain Old Java Object) EJB를 사용하면서 해당 플랫폼에 종속되어 있는 무거운 객체들을 만드는 것에 반발 하며 나타난 용어 별도 프레임 워크 없이 Java EE를 사용할 때에 비해 특정 인터페이스를 직접 구현하거나 상속받을 필요가 없어 기존 라이브러리를 지원하기가 용이하고, 객체가 가볍다.

  2. AOP(Asoect Iruebted Origrannubg, 관점 지향 프로그래밍) 로깅, 트랜잭션, 보안 등 여러 모듈에서 공통적으로 사용하는 기능을 따로 뽑아 관리할 수 있다.

  3. DI(Dependency Injection 의존성 주입) 프로그래밍에서 구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부에서 설정을 통해 정의되는 방식이다. 코드 재사용을 높여 소스코드를 다양한 곳에 사용할 수 있으며 모듈간의 결합도도 낮출 수 있다. 계층, 서비스 간에 의존성이 존재하는 경우 스프링 프레임워크가 서로 연결시켜준다.

  4. IoC(제어의 역전) 전통적인 프로그래밍에서는 개발자가 작성한 프로그램이 외부 라이브러리의 코드를 호출해서 이용했다. 제어 역전은 이와 반대로 외부 라이브러리 코드가 개발자의 코드를 호출하게 된다. 즉, 제어권이 프레임워크에게 있어 필요에 따라 스프링 프레임워크가 사용자의 코드를 호출한다.

  5. 생명 주기 관리 스프링 프레임워크는 Java 객체의 생성, 소멸을 직접 관리하며 필요한 객체만 사용할 수 있다.