스프링 MVC-6

존스노우·2022년 2월 12일
0

SPRING-MVC

목록 보기
5/18
post-thumbnail

스프링 MVC -기본기능

로깅 간단히 알아보기

@RestController 는 반환 값으로 뷰를 찾는 것이 아니라, HTTP 메시지 바디에 바로 입력한다.

밑줄부분은 쓰레드.

레벨에 따라 출력을 정할 수 있다.

주석처리하면 기본이 info라 info부터 출력된다

debug부터 설정하면 너무 많은 로그가 출력되 어지럽다.

실무에는 나눠서 사용하는 걸 추천

롬복 에노테이션을 통해 logger 선언을 없에서 깔끔하게

내가평소에 사용하는건대... 고쳐야 겠다.

연산이 사용되면서 쓸모없는 리소스를 사용하게 된다.

요청매핑

요청이 왔을때 어떤 컨트롤러가 선택 되야되?

  • HTTP메서드를 지정하지 않으면 무관하게 호출됨

요청매핑 API 예시

HTTP 요청 - 기본 헤더 조회

MultiValueMap 같은 키에 값이 두개인경우 사용함.

요청 파라미터 쿼리 파라미터

클라이언트 -> 서버에 요청 데이터는 3가지

요청 파라미터 @ RequestParam

대부분 다 아는 내용인데 맵같은 경우는 처음 알았다.

실무에서 한번 써볼만한 듯?

요청 파라미터 @ModelAttribute

예시

이 부분도 무의식적으로 사용하는 부분이었는데..

다음 부분은 모델 어트리뷰트 생략..

내가 직접만든 객체들은 모델 어트리뷰트 로 설정된다.

요청 메시지 단순 텍스트

HTTP 메시지 바디를 통해 데이터가 직접 데이터가 넘어오는 경우
@RequestParam @ModelAttribute를 사용할 수 없다..

inputStream으로 받아서 조회
이것도 정상 조회

GET Or POST 방식 외에는... httpEntity 사용하거나 데이터 직접꺼내야됨

중요 !!

HttpMessageConverter http 메세지를 읽어서 조작해줌

HTTP 요청 메시지 - JSON

API에서 사용하는 JSON 데이터 사용

이런 순서대로 ...

HTTP 메시지 컨버터 ?

컨텐트 타입보고 json 보고 넌 json이구나 !

json 이면 이코드를 대신 실행시켜줘서 v3 처럼 사용한다

@RequestBody를 생략하면 ? 값이 NULL 이 된다.

왜? 생략하면 @ModelAttribute 가 붙어 버림..

HttpEntity도 사용가능


HTTPCONVER가 나갈때도 적용 됨.

HTTP 정적 리소스 뷰 템플릿

정적 파일 그대로 전달..

정적 리소스 정보..

HTTP 응답 - HTTP API 메시지 바디에 직접 입력

@ResponseBody 생략 -> 클래스 레벨에서 @ResponsBody 추가

최종적으론 -> @RestController

HTTP 메시지 컨버터

대략 교재를 한번더 읽어보자

요청 매핑 핸들러 어뎁터 구조

핸들러 어댑터에서 관련이 있다.

리졸버 -> 처리해주는 역활

매개변수가 올때마다 처리해주는 아규먼트 리졸버 .

핸들러 어댑터 - > 아규먼트 리졸버 (너 리퀘스트 리스폰스 객체 가져다줄수 있어?) -> 선택됨
->객체 생성 만들어서 넘겨줌 . -> 파라미터에 넘겨줄 데이터준비 완료!

아규먼트 리졸버가 메세지 컨버터를 사용한다..

profile
어제의 나보다 한걸음 더

0개의 댓글