Hansel
2. 스프링 MVC 기본 기능 1 본문
로그 찍기

운영 시스템에서 soutv로 콘솔을 사용한 로깅은 좋지 않다.
로깅 라이브러리
SLF4J => 다양한 라이브러리를 통합해서 인터페이스로 제공하는 라이브러리
Logback => SLF4J의 구현체
** Logger 생성시 SLF4J로 선택해야함 **

로깅을 다양하게 보고싶다면
애플리케이션 yml이나 properties에 logging.level을 설정해준다.
trace > debug > info > warn > error 의 우선순위를 가짐
로깅 과정 간소화

LogFactory 쓰기 싫으면 @Slf4j 어노테이션 붙이면 된다.
로깅 주의사항

로그는 반드시 ("level log ={}", @@) 방식으로 사용해야 한다.
+ 연산을 사용하면 결국 연산이 일어나서 사용하지 않는 로깅 레벨도 연산이 이뤄진다.
요청 매핑 방식

HTTP 메서드 호출 방식에 따라 Get, Post 등을 사용할 수 있다.
@PathVariable

@PathVariable 을 통해 해당 url에 들어있는 파라미터를 꺼내서 사용할 수 있다.

=> 변수명이 PathVariable과 같으면 괄호를 생갹할 수 있다.
다중 파라미터

미디어 타입 매핑

Mapping 어노테이션 안에 consumes 추가
HTTP 요청의 Content-Type 헤더를 기반으로 미디어 타입으로 매핑한다.
만약 맞지 않으면 HTTP 415 상태코드(Unsupported Media Type)을 반환한다.
API 요청

다양한 HTTP 헤더 조회 방법

HttpMethod : HTTP 메서드를 조회한다.
Locale : Locale 정보를 조회한다.
@RequestHeader MultiValueMap<String, String> headerMap :
=> 모든 HTTP 헤더를 MultiValueMap 형식으로 조회한다.
=> MultiValueMap
MAP과 유사한데, 하나의 키에 여러 값을 받을 수 있다.
HTTP header, HTTP 쿼리 파라미터와 같이 하나의 키에 여러 값을 받을 때 사용한다.
keyA=value1&keyA=value2
@RequestHeader("host") String host
=> 특정 HTTP 헤더를 조회한다.
=> 속성
필수 값 여부: required
기본 값 속성: defaultValue
@CookieValue(value = "myCookie", required = false) String cookie :
=> 특정 쿠키를 조회한다.
=> 속성
필수 값 여부: required
기본 값: defaultValue
필수 파라미터 처리

필수 파라미터의 경우 int형은 null이 안되기 때문에 필수가 false인 경우
인트형은 Integer를 사용하자.
파라미터 기본값

RequestParam은 PathVariable보다 다양한 속성을 적용할 수 있다.
파라미터를 맵으로 받기

'Spring > MVC' 카테고리의 다른 글
| 6. 메세지와 국제화 (0) | 2022.03.29 |
|---|---|
| 5. 스프링 MVC / 기타 (0) | 2022.03.26 |
| 4. 스프링 MVC / 타임리프 기본 (0) | 2022.03.26 |
| 3. 스프링 MVC 기본 기능 2 (0) | 2022.03.26 |
| 1. 스프링 MVC 패턴 (0) | 2022.03.26 |