Computer Science/Spring

#1 Spring Framework

꿈꾸는어린이 2018. 5. 13. 17:27


[ 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), 비즈니스 클래스들에 대해 선언적으로 적용 가능

  • 비즈니스 컴포넌트를 공통사항에 독립적으로 구현하여 핵심 객체와 시스템 서비스 사이 결합도를 낮춤