@DateTimeFormat

ㄴ 이렇게 다양한 형식의 문자열 데이터(날짜데이터)가 들어오면 어떻게 받아야 하지?
ㄴ 커맨드 객체에는 로컬데이트타임이라고 설정했는데
ㄴ 형식을 알려주면 됨 = @DateTimeFormat
예시) 회원조회(언제 가입했는지, 종료했는지)_날짜 검색 기능


ㄴ 커맨드 객체통해 db 조회

ㄴ 양식 연동하는데 필요한거 넣음
ㄴ 이제 list양식 구성하러 갈거임





ㄴ 모르는 형식이면 이렇게 오류 뜸

ㄴ 모르는 형식이면 이렇게 오류 뜸
ㄴ 형식을 그럼 알려주면 됨

ㄴ 형식 알려줌

ㄴ 이젠 오류 안뜸
예시) 타입미스매치_사용자 친화적 오류 연동


ㄴ 밸리드 : 검증이 필요한 형태이다 알려주기
ㄴ 에러객체 가 있어야 템플리쪽에 연동이 됨
ㄴ 바인드리졸트 써도 ㅇㅋㅇㅋ

ㄴ 날짜 형식 지정한걸로 기입 안해서 뜨는 오류가 나옴
ㄴ 기본 에러메세지가 나옴
ㄴ 에러 메세지 사용자 친과적으로 설정해주러 갈거임

ㄴ 커맨듣객체 오류 코드 범위 한정함



예시) 경로변수


ㄴ 자동으로 형변환도 해줌


ㄴ 경로변수


ㄴ @PathVariable : 애도 값이 없으면 오류가 발생한다

ㄴ 값이 없는걸로 검색하니

ㄴ 이렇게 뜸
ㄴ 음 오류가 나와야 하는데...

ㄴ 반환값을 뷰로 하지 않고 그냥 void로 함
예시)


ㄴ 음 오류뜨네

ㄴ 리콰이얼드 : 폴스
ㄴ 이렇게 해주면

ㄴ 없으면 null로 값을 넣어줌
ㄴ 오류 안뜸
참고) 스프링부트
- el식 속성으로 이미 추가되어 있는 것들
- status : HTTP 상태 코드
- error : 에러코드
- path : 예외가 발생한 URI
- exception :
- message :
- timestamp
- 그럼 스프링에선 어떻게 가져오지?
- 스테이터스 : resp객체
- 패스 : 리퀘스트객체
예시) 사용자 친화적 에러페이지 만들기_@ExceptionHandler

ㄴ 일부러 /member/list 예외발생시킴

ㄴ 에러페이지 뷰 구성
ㄴ 에러페이지는 보통 공통적인 템플릿
ㄴ 에러가 발생하면 모두 여기로 유입되도록할거임




ㄴ 발생한 예외의 원인을 알아야지
ㄴ BadRequestException e : 발생한 예외가 여기 담겨지게 됨

예시)


ㄴ 여기로 유입 안되는 모습

ㄴ 이렇게 하면 유입됨

ㄴ 이렇게도 유입됨
ㄴ 근데 ㄱㅊ아 모든 예외가 유입되도록 해주자

ㄴ 다형성
ㄴ 모든 예외가 유입됨
예시) 공통적인 에러처리


ㄴ 공통적인 컨트롤러 어드바이스가 적용될 범위 설정
ㄴ 패키지 범위 설정
ㄴ 배열이네? 여러개도 설정 가능하다

ㄴ 클래스형태로도 가능

ㄴ 에러를 컨트롤러랑 @ControllerAdvice 둘다 적용 시
ㄴ 우선순위는 컨트롤러쪽이 더 높음

ㄴ 우선순위 쳌


예시)

ㄴ 음 에러인데 상태코드 정상이면 안되지
ㄴ 400으로 떠야하는데





ㄴ 모든 예외를 커먼익셉션의 하위로 정의할거



ㄴ 응답코드 바뀜


참고)
컨트롤러에서 공통으로 처리
-> 핸들러 인터셉터