Spring은 Spring FrameWork를 줄여 말한것이다.
Spring은 JEE(Java Enterprise Edition)가 제공하는 다수의 기능을 원하고있어 JEE를 대체하는 프레임 워크로 볼 수 있다.
또한 DI(Dependency Injection)나 AOP(Aspect Oriented Programming), IoC(Inversion of Control)와 같은 기능도 지원하고있다.
Spring의 특징으로는
- Spring은 자바 객체를 담고 있는 경량 컨테이너로 자바 객체의 생성, 소멸과 같은 라이프 사이클을 관리하며, 필요한 객체를 가져와 사용할수 있다.
- Spring은 DI를 재공해 설정파일이나 어노테인션을 통해 객체간의 의존관계를 설저알수 있다.
- Spring은 POJO(Plain Old Java Object)를 지원해 컨테이너에 저장되는 자바 객체는 특정한 interface를구 현하거나 class를 상속받지 않아도 된다.
- Spring은 트랜잭션 처리를 위한 일관된 방법을 제공한다. 설정 파일을 통해 트랜잭션 관리 정보를 입력하기 때문에, 트랜잭션 구현에 상관없이 동일한 코드를 여려 환경에 사용할 수 있다.
- Spring은 AOP를 지원한다.
- Spring은 영속성과 관련된 다양한 API를 지원한다.
- Spring은 다양한 API에 대한 연동을 지원한다.
Spring에서의 DI
스프링은 DI페턴을 지원하는 프레임워크이며 설정파일과 어노테이션을 이용해 쉽게 객체간의 의존관계를 설정해줄 수 있다.