[Spring] 커스텀 어노테이션

지인·2023년 8월 9일
0

Spring

목록 보기
20/20

🙃 커스텀 어노테이션

메타 어노테이션

  • @Retention : 컴파일러가 어노테이션을 다루는 방법을 기술, 어느 시점까지 영향을 미치는지를 결정

    • RetentionPolicy.SOURCE : 컴파일 전까지만 유효
      RetentionPolicy.CLASS : 컴파일러가 클래스를 참조할 때까지 유효
      RetentionPolicy.RUNTIME : 컴파일 이후 런타임 시기에도 JVM에 의해 참조가 가능(리플렉션)
  • @Target : 어노테이션 적용할 위치 선택

    • ElementType.PACKAGE : 패키지 선언
      ElementType.TYPE : 타입 선언
      ElementType.ANNOTATION_TYPE : 어노테이션 타입 선언
      ElementType.CONSTRUCTOR : 생성자 선언
      ElementType.FIELD : 멤버 변수 선언
      ElementType.LOCAL_VARIABLE : 지역 변수 선언
      ElementType.METHOD : 메서드 선언
      ElementType.PARAMETER : 전달인자 선언
      ElementType.TYPE_PARAMETER : 전달인자 타입 선언
      ElementType.TYPE_USE : 타입 선언
  • @Documented : 해당 어노테이션을 Javadoc에 포함시킴

  • @Inherited : 어노테이션의 상속을 가능하게 함

  • @Repeatable : Java8 부터 지원하며, 연속적으로 어노테이션을 선언할 수 있게 함


커스텀 어노테이션 만들기

  1. 인터페이스 앞에 @를 붙여서 생성할 수 있다.

  2. 메타 어노테이션 추가

  3. 적용할 어노테이션 추가

  4. 변수 추가

  5. 적용 하기

@RestControllerWithSwagger(value = "RestMemberController", name = "RestMemberController")
@RequiredArgsConstructor
@Test1
@RequestMapping("/member")
public class RestMemberController {

    private final MemberService memberService;

    @ApiOperation("멤버 목록 반환")
    @GetMapping("/list")
    public ResponseEntity<String> upload() {
        return ResponseEntity.ok(memberService.getList());
    }

}


참고

[Java] Custom Annotation(커스텀 어노테이션) 만들기
[Java] 어노테이션 (+커스텀 어노테이션 만들기)

profile
열쩡

0개의 댓글