[ CHAP 1 ]
Spring Framework
open source application framework for JAVA platform
Container와 Library의 결합
크기 작고 성능 우수, Java 객체의 life-cycle 관리
Dependency Injection 지원 (DI, 객체들 간 의존 관계 설정)
-> DI와 Interface 활용한 객체들 간의 느슨한 결합(loose coupling)
annotation 통한 선언적 프로그래밍
Aspects와 templates 이용한 단순 반복 코드 제거
AOP(Aspect-Oriented-Programming) 지원
-> 핵심 business logic과 system service 사이의 독립성 보장
mvc framework 제공
Spring Web MVC framework
Dependency Injection : DI (의존성 주입)
객체 외부에 존재하는 assembler(container)가 run-time에 객체들 사이의 의존 관계를 파악하고 의존 객체를 객체에 제공해주는 것
객체들 간의 의존 관계는 xml파일이나 annotation을 통해 설정
객체들 간의 결합도(coupling) 낮춤으로써 테스트, 수정이 용이하다
assembler(container)가 의존객체를 생성한 뒤 필요한 객체에게 setter나 생성자를 정의하여 전달
container
객체들의 life-cycle관리(객체 생성 및 초기화, 의존 관계 생성 ) 와 assembler 역할 수행
AOP(Aspect-Oriented-Programming)
복잡한 의존관계인 핵심 business logic(component)와 시스템 서비스(공통기능모듈)를 분리하여 구현
의존 관계 복잡성과 코드 중복을 해결
시스템 서비스(공통 기능)를 aspect로 모듈화 구현(ex. LoggingModule, SecurityModule), 비즈니스 클래스들에 대해 선언적으로 적용 가능
비즈니스 컴포넌트를 공통사항에 독립적으로 구현하여 핵심 객체와 시스템 서비스 사이 결합도를 낮춤
'Computer Science > Spring' 카테고리의 다른 글
#5 Spring MVC 구조 (0) | 2018.05.25 |
---|---|
#4 Bean 객체의 life-cycle 관리 (0) | 2018.05.14 |
#3 Spring DI : auto-wiring, annotation 기반 (0) | 2018.05.14 |
#2 Spring DI - xml 기반 (0) | 2018.05.14 |
Maven(메이븐)이란? (0) | 2018.03.12 |