반응형
Spring MVC와 관심사 분리
Spring 처리과정
순서도
요청 -> ThreadPool -> Connector(Http Processor) -> Engine -> Host -> Context -> Servlet -> Controller -> Method
Http Processor에서 Request와 Response를 생성 후 다음 단계로 계속 전달해준다.
Dispatcher Servlet과 MVC
Model, View, Controller 3가지로 구성된다.
1 request가 오면 Dispatcher Servlet에서 입력 및 변환을 진행 후 모델을 생성한다. (결과를 저장)
2. Dispatcher Servlet에서 Handler Mapping으로 전달하여 XML 파일에서 핸들러 매핑 항목을 가져온다
3. 요청을 XML에 매핑된 컨트롤러에 전달한다.
4. Controller에서 반환할 타입을 정의하고 Model을 정의하고 값을 넣어주어 반환한다. (view 선택 가능)
6. View Resolver는 어떤 뷰를 선택할지 결정하는 전략을 정의하고, 이를 통해 뷰 리소스의 경로나 타입을 설정한다.
7. DispatcherServlet은 XML 파일에서 뷰 확인자의 항목을 확인하고 적절한 뷰 구성 요소를 호출한다.
8. View는 클라이언트에게 보여질 화면을 나타내는 객체로 실제 클라이언트에게 전달되는 HTML, JSON, XML 등의 형식을 가진 데이터이며 View 객체는 컨트롤러가 반환한 모델 데이터와 결합하여 최종적으로 클라이언트에게 제공한다.
Spring 프레임워크의 장점
- MVC 아키텍처: Spring은 MVC (Model-View-Controller) 아키텍처를 지원하여 애플리케이션의 구조를 명확하게 분리할 수 있다.
- 의존성 주입(Dependency Injection): Spring은 의존성 주입을 통해 객체 간의 결합도를 낮출 수 있어 코드의 유지보수성과 테스트 용이성을 높일 수 있다.
- 관점 지향 프로그래밍(Aspect-Oriented Programming): Spring은 AOP를 지원하여 핵심 비즈니스 로직과 횡단 관심사(Cross-Cutting Concerns)를 분리할 수 있다. 예를 들어, 로깅, 트랜잭션 관리 등을 모듈화하여 코드 중복을 방지하고 유연성을 높일 수 있다.
- 통합 지원: Spring은 다양한 기술과 라이브러리를 통합할 수 있는 다양한 모듈을 제공받을 수 있다. 예를 들어, JDBC, JPA, Hibernate, JMS, RESTful 서비스 등을 쉽게 통합하여 사용할 수 있다.
반응형
'CS > Spring' 카테고리의 다른 글
Spring Bean 알아보기 (0) | 2024.05.31 |
---|---|
DataSource 알아보기 (0) | 2024.03.31 |
Connection Pool 이해하기 (3) | 2024.03.23 |
h2 DB에서 mysql로 변경하기 (0) | 2022.12.03 |
의존관계 주입 방법 4가지 (0) | 2022.09.28 |