일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 프로그래밍
- 프로그래밍기초
- 초보코딩탈출
- 배열
- 제이쉘
- 스프링 기초
- 자바
- eclips
- github
- 자바 스프링
- Java
- 기초코딩
- JShell
- spring
- Elk
- 프로그래밍언어
- 컴퓨터과학개론
- 클래스
- 초보코딩
- 자바기초
- 스프링
- 데이터베이스
- 이클립스
- 코딩초보
- 자바프로그래밍
- 알고리즘
- 메소드
- JAVA기초
- 리눅스
- Git
- Today
- Total
키보드워리어
[Spring] @Target에 대해서 알아보자. 본문
안녕하세요 【키보드 워리어】 블로그 방문자 여러분, 안경닦이입니다.
오늘은 @Target 어노테이션에 대해 살펴보려고 합니다.
@Target
바로 커스텀 어노테이션을 정의할 때 해당 어노테이션이 적용될 수 있는 대상을 지정하는데 사용됩니다.
예를들어 아래와 같은 코드가 있다고 한다면,
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface LoginUserAuthorize {
}
위의 코드에서 @Target(ElementType.PARAMETER)는
@LoginUserAuthorize 어노테이션이 파라미터에 적용될 수 있음을 나타냅니다.
따라서 @LoginUserAuthorize어노테이션은 메서드 레벨에서도 사용할 수 있고, 클래스 레벨에서도 사용할 수 있습니다.
실제 사용한 코드를 한 번 볼까요?
public String delete(@PathVariable Long boardId, @LoginUserAuthorize Member loginUser) {
//비즈니스로직
}
이 코드의 핵심은 @LoginUserAuthorize 어노테이션을 통해 로그인 권한을 가진 사용자만 해당 메서드에 접근할 수 있도록 제한하고, 게시글 삭제에 대한 권한 검사를 수행한다는 점이죠. @Target을 지정했으니 가능합니다.
@Target 종류
Target으로 지정할 수 있는 타입은 다음과 같아요.
METHOD: 메서드에 어노테이션을 적용할 수 있습니다. 메서드 수준에서의 어노테이션은 해당 메서드의 동작에 영향을 미칠 수 있습니다.
TYPE: 클래스, 인터페이스, 열거형 등의 타입에 어노테이션을 적용할 수 있습니다. 클래스 수준에서의 어노테이션은 해당 타입의 모든 멤버와 인스턴스에 영향을 미칠 수 있습니다.
PARAMETER: 메서드나 생성자의 매개변수에 어노테이션을 적용할 수 있습니다. 매개변수 수준에서의 어노테이션은 해당 매개변수의 사용 방식이나 처리 방법을 설정할 수 있습니다.
ANNOTATION_TYPE: 다른 어노테이션에 어노테이션을 적용할 수 있습니다. 즉, 어노테이션을 구성하는 요소에 어노테이션을 부여할 수 있습니다.
![](https://blog.kakaocdn.net/dn/NGS9t/btsjO3dAYQX/pud4WtgRIIh8BGRkzh0OJ1/img.png)
'Spring framework' 카테고리의 다른 글
[Spring MVC] 공식문서 정리 - MVC (0) | 2023.07.25 |
---|---|
[스프링] SOLID에 대해서 (2) | 2023.05.07 |
[spring framework] 롬복 어노테이션 기능 구현 (0) | 2023.05.05 |
[스프링] Thymeleaf로 index.html연결 실습 (0) | 2023.04.12 |
[스프링] application.properties란? (0) | 2023.04.09 |