일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- JdbcTemplate
- JDBC TEMPLATE
- pointcut
- spring framework
- AOP
- Di
- spring aop
- 마이바티스
- Ubunt
- Framework
- Dependency Injection
- Linux
- java spring
- @test
- unix
- Spring JDBC
- SpringJDBC
- @JUnit
- XML
- Spring Boot
- STS
- spring
- POJO
- @Spring-Test
- @AspectJ
- 프로퍼티
- java
- myBatis
- 리눅스
- 컨테이너
Archives
- Today
- Total
개키우는개발자 : )
애노테이션 매핑 정보 사용 본문
반응형
결론 및 요약
컨트롤러 클래스 내부에 맵핑 정보를 애노테이션으로 직접 추가하여, 더 간결하게 웹 요청을 처리하는 방법을 배웠습니다. 기존에 서블릿 코드에서 맵핑 작업을 수동으로 처리하던 방식을 스프링의 애노테이션 기반 맵핑으로 전환하는 작업을 했습니다. 이를 통해 코드가 훨씬 간결해지고, 스프링이 제공하는 자동 맵핑 및 바인딩 기능을 활용할 수 있게 되었습니다.
주요 내용 요약
애노테이션 기반 맵핑:
@GetMapping
,@RequestMapping
등의 애노테이션을 사용하여, 웹 요청을 처리할 컨트롤러 메소드에 대한 URL 및 HTTP 메소드 매핑을 설정했습니다.- RequestMapping을 클래스 레벨에 선언하면, 그 클래스 내부의 메소드들이 URL을 처리하는 기본 경로를 지정하게 됩니다.
- 메소드 레벨에 선언한
@GetMapping
,@PostMapping
애노테이션을 통해 더 세밀하게 요청을 분리할 수 있었습니다.
DispatcherServlet의 역할:
- DispatcherServlet은 서블릿 컨테이너에 등록된 애플리케이션의 빈들을 스캔하여, 웹 요청을 처리할 수 있는 컨트롤러 및 메소드들을 찾아 맵핑 테이블을 생성합니다.
- 맵핑된 정보에 따라 들어오는 요청을 적절한 컨트롤러로 디스패치하는 작업을 합니다.
Response 처리:
- 기본적으로 컨트롤러 메소드가
String
값을 반환하면, 스프링은 이를 뷰 이름으로 간주하여 해당하는 뷰를 찾아 응답하려고 합니다. - 하지만, 메소드의 반환값을 직접적으로 HTTP 응답의 body에 출력하고자 한다면,
@ResponseBody
애노테이션을 추가해야 합니다. @RestController
는 자동으로@ResponseBody
를 포함하여 모든 메소드의 반환값을 바로 응답에 포함하도록 처리해 주므로, 따로@ResponseBody
를 붙이지 않아도 됐던 이유를 설명했습니다.
- 기본적으로 컨트롤러 메소드가
코드 간소화:
- 기존에 복잡했던 서블릿 맵핑 작업이 애노테이션 하나로 간결하게 정리되었습니다.
- DispatcherServlet과 스프링 컨테이너가 자동으로 맵핑 및 요청 처리를 맡게 되어, 코드는 훨씬 가독성이 좋아지고 관리가 쉬워졌습니다.
결론:
애노테이션 기반의 맵핑 방법과 DispatcherServlet이 어떻게 요청을 처리하고 맵핑 테이블을 구축하는지에 대해 이해할 수 있었습니다. 다음 시간에는 스프링 컨테이너와 서블릿 컨테이너의 라이프 사이클을 통합하는 작업을 살펴보며, 더 나아간 스프링의 자동화 기능에 대해 학습할 예정입니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션5 - 독립 실행형 스프링 애플리케이션' 카테고리의 다른 글
자바코드 구성 정보 사용 (0) | 2024.10.06 |
---|---|
스프링 컨테이너로 통합 (0) | 2024.10.06 |
DispatcherSevlet으로 전환 (0) | 2024.10.06 |
의존 오브젝트 DI 적용 (0) | 2024.10.06 |
Dependency Injection (0) | 2024.10.06 |
Comments