일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Linux
- 프로퍼티
- Spring Boot
- @test
- @Spring-Test
- 마이바티스
- Ubunt
- spring
- spring framework
- unix
- @AspectJ
- @JUnit
- JdbcTemplate
- spring aop
- POJO
- java spring
- AOP
- STS
- XML
- JDBC TEMPLATE
- myBatis
- Dependency Injection
- java
- SpringJDBC
- Di
- 리눅스
- pointcut
- 컨테이너
- Spring JDBC
- Framework
Archives
- Today
- Total
개키우는개발자 : )
DispatcherSevlet으로 전환 본문
반응형
결론 및 요약
DispatcherServlet을 도입하여, 기존에 우리가 직접 작성했던 서블릿 코드와 맵핑 작업을 제거하고 스프링의 전통적인 서블릿 컨트롤러인 DispatcherServlet이 이를 대신 처리하도록 구현하였습니다. 이를 통해 Servlet Container-less 애플리케이션으로의 전환을 진행했습니다.
주요 내용 요약
기존 서블릿의 복잡성 제거:
- 이전에는
FrontController
서블릿을 직접 작성하여 모든 웹 요청을 처리하고, 매핑을 수동으로 설정했지만, 이번 시간에 DispatcherServlet을 사용함으로써, 이 복잡한 작업을 대신 처리하도록 하였습니다. - 이를 통해 서블릿을 다루는 복잡한 코드를 단순화할 수 있었습니다.
- 이전에는
DispatcherServlet의 역할:
- DispatcherServlet은 스프링의 핵심 서블릿으로, 맵핑, 요청 처리 및 핸들러 관리와 같은 중요한 역할을 수행합니다. 우리가 작성했던 프론트 컨트롤러가 수행하던 작업을 대신해줍니다.
- Servlet은 이제 더 이상 직접 다루지 않고,
DispatcherServlet
이 이를 처리하게 됩니다. 이 서블릿은 들어오는 요청을 분석하여 적절한 컨트롤러로 디스패치합니다.
맵핑 및 요청 전달:
- URL 맵핑과 요청 파라미터 처리가 자동으로 이루어지도록 설계되었습니다. 스프링 컨테이너와 DispatcherServlet이 협력하여 요청을 적절한 핸들러로 전달하는 구조가 구현되었습니다.
- 하지만,
404
에러가 발생한 이유는 DispatcherServlet에게 어떤 객체가 웹 요청을 처리할지 명시적으로 알려주지 않았기 때문입니다. 이는 추후 매핑 정보를 컨트롤러 클래스에 추가하는 방식으로 해결할 수 있습니다.
WebApplicationContext의 사용:
DispatcherServlet
은 WebApplicationContext를 요구합니다. 이 컨텍스트는 일반적인 스프링 애플리케이션 컨텍스트보다 더 발전된 웹 전용 컨텍스트로, 웹 애플리케이션의 설정과 관련된 추가적인 기능을 제공합니다.GenericWebApplicationContext
를 사용하여 이 문제를 해결하였습니다.
결론:
DispatcherServlet을 도입하여 서블릿 관련 코드를 단순화하고, 웹 요청을 처리하는 과정을 더 유연하게 만들었습니다. 다음 시간에는 컨트롤러 클래스에 맵핑 정보를 추가하는 방법에 대해 학습하며, DispatcherServlet이 어떻게 더 효율적으로 작동하는지 살펴보게 될 것입니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션5 - 독립 실행형 스프링 애플리케이션' 카테고리의 다른 글
스프링 컨테이너로 통합 (0) | 2024.10.06 |
---|---|
애노테이션 매핑 정보 사용 (0) | 2024.10.06 |
의존 오브젝트 DI 적용 (0) | 2024.10.06 |
Dependency Injection (0) | 2024.10.06 |
의존 오브젝트 추가 (0) | 2024.10.06 |
Comments