Spring Framework
- 자바 엔터프라이즈 개발을 편하게 해주는 경량급 오픈소스 애플리케이션 프레임워크
- Lightweight Java Application Framework
- 목표 : POJO(Plain Old Java Object)기반의 Enterprise Application 개발을 쉽고 편하게 할 수 있도록 함
- Java Application을 개발하는데 필요한 하부구조를 포괄적으로 제공
- Spring이 하부구조를 처리하기 때문에 개발자는 Application 개발에 집중 가능
- 동적 웹 사이트를 개발하기 위한 여러 서비스 제공
- 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자, 정부 표준 프레임워크의 기반 기술
POJO와 EJB
Spring 주요 특징
- 의존 관계 주입 : DI(Dependency Injection)
- 각각의 계층이나 서비스들 간 의존성이 존재할 경우 Spring이 바로 연결시켜줌
- POJO 객체들 사이의 의존 관계를 Spring이 알아서 연관성을 맺어줌
- ex) 다양한 DB사용이 가능
- 관점 중심 프로그래밍 : AOP(Aspect Orientated Programming)
- Spring은 핵심적인 비즈니스 로직과 관련이 없으나 여러 곳에서는 공통적으로 쓰이는 기능들을 분리(공통 관심사를 분리)하여 개발하고 실행 시에 서로 조합할 수 있는 AOP를 지원
- 이를 통해 코드를 단순하고 깔끔하게 작성할 수 있
- 횡단 관심을 수행하는 코드(Logging, Security, Transation 등)는 aspect라는 특별한 객체로 모듈화하고 weaving이라는 작업을 통해 모듈화한 코드를 핵심 기능에 끼워넣을 수 있음
Spring 구성요소
- Core Container 중 Bean Container은 POJO객체를 관리함
- Spring에서 제공하는 다양한 기능 중 필요한 것을 선택적으로 사용
출처
https://gmlwjd9405.github.io/2018/10/26/spring-framework.html