패키지 내 클래스 개선

박수민·2024년 3월 14일
0

Controller, Service 패키지 내 클래스 개선

전에 뉴스피드프로젝트에서 만들어둔 프로젝트로 파일을 수정 및 개선해보려고한다.

1. Controller Advice 로 예외 공통화 처리하기

  • @RestControllerAdvice 를 사용해서 모든 RestController 의 예외를 공통화해서 처리한다.
@RestControllerAdvice
public class GlobalExceptionHandler {

    // 예외 처리 메서드 예시
    // 여기서는 모든 Exception 타입의 예외를 처리
    @ExceptionHandler(Exception.class)
    public final ResponseEntity<String> handleAllExceptions(Exception ex, WebRequest request) {
        // 예외에 대한 간단한 메시지와 함께 INTERNAL_SERVER_ERROR (500) 상태 코드를 반환
        return new ResponseEntity<>(ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
    }

    // 특정 예외 타입을 처리하는 메서드 예시
    // CustomException이라는 사용자 정의 예외를 처리
    @ExceptionHandler(CustomException.class)
    public final ResponseEntity<String> handleUserNotFoundException(CustomException ex, WebRequest request) {
        // CustomException의 경우, NOT_FOUND (404) 상태 코드를 반환
        return new ResponseEntity<>(ex.getMessage(), HttpStatus.NOT_FOUND);
    }

}
  • CustomException클래스를 추가해준다.

2. Service 인터페이스와 구현체 분리하여 추상화 하기

각 Controller에 해당하는 Service를 인터페이스로 만들어주고 각 ServiceImpl클래스를 추가한다.
각 ServiceImpl클래스에 각 Service를 implements 해준다.

@Service
@RequiredArgsConstructor
public class UserServiceImpl implements UserService {
    // UserService의 구현체 코드 여기에 작성
}

@Service
@RequiredArgsConstructor
public class BoardServiceImpl implements BoardService {
    // BoardService의 구현체 코드 여기에 작성
}

@Service
@RequiredArgsConstructor
public class CommentServiceImpl implements CommentService {
    // CommentService의 구현체 코드 여기에 작성
}

0개의 댓글