스프링 부트 3일차

선장원·2022년 1월 6일
1

SpringBoot

목록 보기
3/18

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시 나오는 한글이 깨지지 않는다

profile
코딩도전기

0개의 댓글