스프링 부트 3일차
3일차 (01/06)
스프링 부트 이해도?
면접에서 jpa써봤냐고 물어보면 스프링 데이타 jpa만 써봤습니다 라고 하기
jpa는 엄청 크고 어려워서 다 배우기는 힘들다
이거는 면접 때 msg를 잘못뿌리면 안된다
로그인
리포지토리
select은 find를 넣어라 조건은 by컬럼
그럼 두개 이상을 검색 할 때는 어떻게 하는거지
jpa가 정해준 방법대로 만들어야함 다르게 만들면 안해준다
컨트롤러
로그인에 성공하면 session에 저장을 하고
실패하면 bindingResult로 다시 html으로 보낸다
bindingResult.reject()
글로벌 오류를 보내주는 신기한 친구?
서비스
mr.findByMemberEmail()을 이용해서 아이디가 있는지 확인을 하고
null이면 false을 보내고
null이 아니라면 가져온 정보의 password와 입력한 password를 비교한다
html
div 부분이 글로벌 오류를 잡아주는 곳이다
th:if="${#fieds.hasGlobalErrors()}"를 통해서 구별하는 듯
만약에 글로벌 오류가 여러개라면 ()안에 bindingResult에서 지정한 에러코드를 이용해서 구별하는 듯
로그인테스트
이메일 체크
편하네 ajax로 안해도 되고
서비스
해당 아이디를 만들었을 때 값이 널이 아니라면 IllegalStateException이라는 예외를 throw한다
throw : 이거는 예외가 발생하면 해당 클래스의 윗단계로 예외를 던진다
IllegalStateException에 "중복이메일 입니다" 를 담아서 컨트롤러로 던지는 것이다
컨트롤러
ms.save()를 try안에 넣고 예외가 오면 그 예외를 bindingResult.reject로 글로벌 오류로 html으로 보낸다
회원전체 조회
jpa에서 회원정보를 가져오면 List에 담아서 준다
리스트에 담아온 entity를 DTO로 변환 시켜서 리스트에 담아서 리턴을 보낸다.
회원전체 조회 테스트
1번은 for문을 이용한 저장
2번은 IntStream을 이용한 저장
IntStream방식
IntSteam.rangeClosed(시작, 끝).forEach( -> {
코드 내용
});
위 문법을 사용해서 forEach문을 쓰는 방법이 있다
인텔리제이 DB연동
순서대로 아이디 비밀번호 데이터베이스를 입력하고 Test Connection을 누르면 디비연동 플러그(이거 맞나? 아마도 이거)를 다운 받으라고 뜬다
다운해줘야한다
타임존 설정하라는 것도 뜬다는데 나는 안뜸
왜지
꿀팁
jpa
entity 클래스와 jsp repesitory에서는 _를 사용하면 인식을 못한다
캐시 사용 해제
application에서
를 입력해 줘야 함
한글 깨짐 설정
help>Edit Custom Vm Options..를 누르면 나오는 파일에
-Dfile.encoding=UTF-8
를 입력해주면 test시 나오는 한글이 깨지지 않는다
Author And Source
이 문제에 관하여(스프링 부트 3일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@captain1/스프링-부트-3일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)