녕의 학습 기록
[Spring MVC 1] 스프링 MVC-기능 (1) 본문
♪ 학습 내용
스프링 MVC의 기본 기능
이번엔 JSP를 사용하지 않기 때문에 프로젝트 생성 시 Jar를 선택해주었다.
Jar : 항상 내장 서버 사용, webapp 경로 사용x ----> 내장 서버 사용에 최적화
* 로깅
//로그 선언
private Logger log = LoggerFactory.getLogger(getClass());
//치환된다
log.deug("data={}",data);
@Slf4j
장점으로는 로그를 사용하면 로그를 상황에 맞게 설정으로 조절할 수 있고,
( ex 개발 서버에는 모든 로그 출력, 운영 서버에는 출력하지 않는 로그)
System.out 방식은 콘솔에 출력하는 것이 전부였지만 로그는 파일이나 네트워크 등 별도의 위치에 남길 수 있다.
* 요청 매핑
@RestController
기존 @Controller는 반환값을 뷰 이름으로 인식하고, 뷰 리졸버를 통해 렌더링까지 했었다.
@RestController는 반환 값을 HTTP 메시지 바디에 바로 입력 !
그렇기에 실행 결과로 ok라는 메세지를 확인 가능하다.
//PathVariable
@GetMapping("/mapping/{userId}")
public String mappingPath(@PathVariable("userId") String data){
log.info("mappinPath userId = {}", data);
return "ok";
}
@PathVariable은 URL 경로를 템플릿화{ } 하여, 매칭되는 부분을 편리하게 조회할 수 있는 기능이다.
위의 URL에서는 {uesrId} 를 템플릿화, 이를 String 타입의 data 변수에 매칭시켰다.
위에서는 변수명을 data로 지었기 때문에 @PathVariable 괄호 안에 매칭해야하는 요소를 넣어주었지만,
변수명을 같게 지으면 아래와 같이 더 편리하게 사용 가능하다.
public String mappingPath(@PathVariable String userId){
//value 에 맞는 URL이 들어오면서, mode=debug라는 파라미터가 있어야 매핑된다.
// /mapping-header?mode=debug 처럼
@GetMapping(value="/mapping-header", params="mode=debug")
미디어 타입 조건 매핑
* consume - HTTP 요청의 Content-Type 헤더를 기반으로 매핑한다
* produce - HTTP 요청의 Accept 헤더를 기반으로 매핑, 이때 produces는 응답하는 미디어 타입이 된다.
(결국은 요청의 Accept 헤더의 미디어 타입과 응답하는 미디어 타입이 맞아야 하기 때문에)
* 요청 매핑 - API 예제
이처럼 @PathVariable 방식(URL 경로 템플릿화)도 많이 쓰이고 쿼리 파라미터 방식도 많이 쓰인다.
♪ 다음 학습 내용
스프링 MVC - HTTP 요청 조회 방법
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의
웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -
www.inflearn.com
'Dev > Spring' 카테고리의 다른 글
[Spring MVC 1] 스프링 MVC-기능 (3) (0) | 2023.02.07 |
---|---|
[Spring MVC 1] 스프링 MVC-기능 (2) (0) | 2023.02.02 |
[Spring MVC 1] 스프링 MVC-구조 (2) (0) | 2023.01.31 |
[Spring MVC 1] 스프링 MVC-구조 (1) (0) | 2023.01.30 |
[Spring MVC 1] MVC 프레임워크 만들기 (3) (0) | 2023.01.28 |