개발 공부는 어려워
article thumbnail
반응형

swagger 설정을 하던 도중 ApiResponse, ApiResponses라는 어노테이션을 사용하게 되었다.

해당 어노테이션의 사용 방법은 responseCode = "200", description="OK" 이러한 방식으로 특정 responseCode가 응답될 경우 설명을 보여주는 코드인데

원래 코드에서 사용하던 내용은 아래와 같다.

 

@ApiResponses({
    @ApiResponse(responseCode = "200", description = "OK"),
    @ApiResponse(responseCode = "400", description = "BAD REQUEST"),
    @ApiResponse(responseCode = "404", description = "NOT FOUND"),
    @ApiResponse(responseCode = "500", description = "INTERNAL SERVER ERROR")
})

 

많은 코드중 제일 많이 사용되는 200, 400, 404, 500 코드를 항상 컨트롤러에 사용하기에는 너무 코드가 길어 커스텀 어노테이션을 만들게 되었다.

 


제일먼저 해야할 일은 특정 인터페이스를 만들어야 한다.

 

여기서 중요한 내용은 @interface 옆에 ResponiseApiCode라는 파일명이다.

 

우리가 작성한 저 명칭으로 해당 어노테이션을 사용할 수 있다.

 

해당 어노테이션을 사용한다면 

 

 

이런식으로 사용 가능하다.


커스텀 어노테이션을 사용할떄 사용해야 하는 기본 어노테이션이 존재한다.

 

1. Target - 어노테이션을 적용할 위치

    - ElementType.ANNOTATION_TYPE
        - 어노테이션 타입 선언

    - ElementType.PACKAGE
        - 패키지 선언

    - ElementType.CONSTRUCTOR
        - 생성자 선언

    - ElementType.TYPE
        - 타입 선언
        
    - ElementType.FIELD
        - 멤버 변수 선언

    - ElementType.LOCAL_VARIABLE
        - 지역 변수 선언

    - ElementType.METHOD
        - 메서드 선언

    - ElementType.PARAMETER
        - 전달인자 선언

    - ElementType.TYPE_PARAMETER
        - 전달인자 타입 선언

    - ElementType.TYPE_USE
        - 타입 선언

2. Retention - 해당 어노테이션이 언제까지 유지되는지 설정

    - RetentionPolicy.SOURCE
        - 컴파일전까지만 존재 
        - 코드 분석에 사용

    - RetentionPolicy.CLASS
        - 컴파일러가 클래스를 참조할 때까지 유효
        - 기본값
        - 다른 툴이 바이트코드를 분석할 떄 사용

    - RetentionPolicy.RUNTIME
        - 런타임시에도 JVM에 의해서 유지
        - 프레임워크나, 라이브러리에서 사용하는 어노테이션

반응형

'study > spring' 카테고리의 다른 글

네이버 메일 보내기  (0) 2024.05.27
Spring Boot 어노테이션 만들기(Custom Annotation)  (0) 2024.05.27
Jpa @CreateData어노테이션  (0) 2023.12.11
JPA 설정  (0) 2023.11.21
Thymeleaf 설정  (0) 2023.11.21
profile

개발 공부는 어려워

@신입개발자하랑이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!