@RestController 는 반환 값으로 뷰를 찾는 것이 아니라, HTTP 메시지 바디에 바로 입력한다.
밑줄부분은 쓰레드.
레벨에 따라 출력을 정할 수 있다.
주석처리하면 기본이 info라 info부터 출력된다
debug부터 설정하면 너무 많은 로그가 출력되 어지럽다.
실무에는 나눠서 사용하는 걸 추천
롬복 에노테이션을 통해 logger 선언을 없에서 깔끔하게
내가평소에 사용하는건대... 고쳐야 겠다.
연산이 사용되면서 쓸모없는 리소스를 사용하게 된다.
요청이 왔을때 어떤 컨트롤러가 선택 되야되?
MultiValueMap 같은 키에 값이 두개인경우 사용함.
클라이언트 -> 서버에 요청 데이터는 3가지
대부분 다 아는 내용인데 맵같은 경우는 처음 알았다.
실무에서 한번 써볼만한 듯?
예시
이 부분도 무의식적으로 사용하는 부분이었는데..
다음 부분은 모델 어트리뷰트 생략..
내가 직접만든 객체들은 모델 어트리뷰트 로 설정된다.
HTTP 메시지 바디를 통해 데이터가 직접 데이터가 넘어오는 경우
@RequestParam @ModelAttribute를 사용할 수 없다..
inputStream으로 받아서 조회
이것도 정상 조회
GET Or POST 방식 외에는... httpEntity 사용하거나 데이터 직접꺼내야됨
중요 !!
HttpMessageConverter http 메세지를 읽어서 조작해줌
API에서 사용하는 JSON 데이터 사용
이런 순서대로 ...
HTTP 메시지 컨버터 ?
컨텐트 타입보고 json 보고 넌 json이구나 !
json 이면 이코드를 대신 실행시켜줘서 v3 처럼 사용한다
@RequestBody를 생략하면 ? 값이 NULL 이 된다.
왜? 생략하면 @ModelAttribute 가 붙어 버림..
HttpEntity도 사용가능
HTTPCONVER가 나갈때도 적용 됨.
정적 파일 그대로 전달..
정적 리소스 정보..
@ResponseBody 생략 -> 클래스 레벨에서 @ResponsBody 추가
최종적으론 -> @RestController
대략 교재를 한번더 읽어보자
핸들러 어댑터에서 관련이 있다.
리졸버 -> 처리해주는 역활
매개변수가 올때마다 처리해주는 아규먼트 리졸버 .
핸들러 어댑터 - > 아규먼트 리졸버 (너 리퀘스트 리스폰스 객체 가져다줄수 있어?) -> 선택됨
->객체 생성 만들어서 넘겨줌 . -> 파라미터에 넘겨줄 데이터준비 완료!
아규먼트 리졸버가 메세지 컨버터를 사용한다..