2023.04.24 - [spring 리마인드] - springframework mybatis 로 회원(목록,가입,수정,삭제) 생성하기
springframework mybatis 로 회원(목록,가입,수정,삭제) 생성하기
2023.04.21 - [spring 리마인드] - spring mybatis(동적sql)와 xml파일로 업데이트구현 spring mybatis(동적sql)와 xml파일로 업데이트구현 2023.04.20 - [spring 리마인드] - interface와 xml의 조합(mybatis) interface와 xml의 조
ji7290.tistory.com
13일차 복사하기
day14생성
pom.xml에서 artifactid와 name을 day14로 수정해준다
properties에 webProject
day14로 수정
14일차 서버실행
서버가 잘실행된다.
먼저 파일을 하나준비한다.
memberController에서 join void가아닌
반환값 modelAndView로 agreement객체를 생성해준다.
MemberService에서
@value를 이용해서 agreement.txt를 불러온다.
String data의 내용을 inputStream으로 불러와서 반환
@Value 어노테이션을 사용하여 textFile 변수에 classpath에 위치한 "agreement.txt" 파일을 할당하고 있다.
getAgreement() 메서드는 Scanner를 사용하여 textFile에서 파일 내용을 읽어와 String 형태로 반환한다. 이 때, 파일 시스템이 아닌 Resource 객체의 getInputStream() 메서드를 사용하여 파일의 내용을 가져온다.
이 방식은 데이터베이스나 원격지 등 다양한 소스에서 파일을 로드할 수 있으며,
스프링 프레임워크에서 권장하는 리소스 핸들링 방식
해당 메서드는 파일 읽기 도중 에러가 발생할 경우 예외처리 IOException
src/main/resources 에 agreement.txt 하나를 만들어서 별도의 이용약관텍스트를 넣어준다.
파일이름은 서비스의 @value에 경로와 이름이 일치해야한다.
Memberservice는 추가기능을 넣어주기에 유용하다
value어노테이션으로 경로와 파일을 추가해주고
resource 필드로 편하게 파일을 찾아올 수 있다.
classpath는 src-main-resources에서 찾아준다.
이용약관
join.jsp에서
약관폼을 만들어준다.
동의버튼을 체크박스로 생성해준다.
약관동의를누르면 신청폼이 열린다.
spring에서 예외처리를 하기위한 기능들이 있다. exceptionHandler
먼저 강제로 예외를 만들어보자
있는 계정으로 회원가입해보자
키가 중복되서 예외가 뜬다.
예외전가란 현장에서 바로 풀지않고 상위에서 처리한다.
( ex 알바생이 실수하면 사장님이 처리하는것)
이 예외를 bookController에서 전부 묶어서 처리해주자
@ExceptionHandler
@ExceptionHandler 어노테이션을 사용하여 (현재 컨트롤러 내에서 발생하는 예외에 대해서만 반응한다.)
@ExceptionHandler` 어노테이션을 사용하여 `SQLIntegrityConstraintViolationException`
예외가 발생할 경우 처리하는 메서드
SQLIntegrityConstraintViolationException` 예외는 데이터베이스 제약 조건 위반에 대한 예외
따라서 해당 메서드는 중복된 키 값을 가지고 있는 경우
즉 데이터베이스에 이미 존재하는 ID나 nickname을 사용할 때 발생할 수 있는 예외를 처리한다.
아예 다른클래스에서도 사용해보자
@ControllerAdvice는 스프링에서 발생하는 예외를 모아서 처리하기 위한 클래스
범위를 지정하지않으면 프로젝트 전역에서 발생하는 예외에 대하여 반응한다
범위를 지정하여 특정컨트롤러, 혹은 특정 패키지 내의 예외에 대한반응을 하게 설정할 수 있다.
멤버컨트롤러의 dupkey메서드를 MemberExceptionHandler로 붙혀준다.
root-context로 가서 패키지 com.itbank.exception을 스프링bean등록을 해준다.
로그인이 실패할경우 메세지를 띄우는 함수를 만들어준다
멤버컨트롤러에서 login함수를 수정해서 일부러 예외를 만들어준다.
handler클래스에서 직접 예외상황을 규정한다.
nomemberException에서
로그인에서 가입된계정이없는경우의 예외 직접만들어준다.
웹에서 가입하지않은 계정으로 로그인을 해보자.
spring 예외
'spring 리마인드' 카테고리의 다른 글
SQL DataBase와 연동해서 파일업로드, 불러오기 (0) | 2023.04.26 |
---|---|
multpartRequest,commons-io의존성 (파일업로드) (0) | 2023.04.26 |
springframework mybatis 로 회원(목록,가입,수정,삭제) 생성하기 (0) | 2023.04.24 |
spring mybatis(동적sql)와 xml파일로 업데이트구현 (0) | 2023.04.21 |
interface와 xml의 조합(mybatis) (0) | 2023.04.20 |