티스토리 뷰
Annotation의 종류
- Built-in Annotation : 자바에서 기본적으로 제공하는 어노테이션 (ex. @**Override)**
- Meta Annotation : 커스텀 어노테이션을 만들수 있게 제공된 어노테이션. (ex. **@Target)**
- Custom Annotation : 사용자가 직접 정의한 어노테이션 (java 외 spring, junit 등.. 모두 포함) (ex. **@Test)**
Annotation 만들기
- Meta Annotation 을 사용해서 만든다.
- @Target
- 말 그대로 어노테이션의 타겟을 지정하는 것입니다.
- FIELD : 해당 어노테이션을 Feild에 붙일때
- METHOD, TYPE : Class나 Enum 등의 어떤 대상을 위한 어노테이션인지 타입에 붙일 때
- 그외 PARAMETER, CONSTRUCTOR
 
 
- 말 그대로 어노테이션의 타겟을 지정하는 것입니다.
어노테이션의 지속기간(@Retention)
=> (어디까지 영향을 미칠지 = 용도와 관련)
- 
- SOURCE : 소스 코드(.java)까지 남아있는다.
- 컴파일 과정에서 어노테이션 정보는 사라짐
 
- CLASS : 클래스 파일(.class)까지 남아있는다.(=바이트 코드)
- 런타임시 유지안됨
 
- RUNTIME : 런타임까지 남아있는다.(=사실상 안 사라진다.)
- Reflection API 로 어노테이션 정보 조회 가능
 
 
- SOURCE : 소스 코드(.java)까지 남아있는다.

728x90
    
    
  반응형
    
    
    
  '[개발] - Spring > 개념 정리' 카테고리의 다른 글
| Lombok 라이브러리에서 자주 사용하는 어노테이션 (1) | 2023.01.30 | 
|---|---|
| 의존성 주입과 제어의 역전 (0) | 2023.01.21 | 
| 스프링 Bean과 Component (0) | 2023.01.16 | 
| 스프링부트 리다이렉트 종류 / 모듈과 모듈화 (0) | 2023.01.15 | 
| 헷갈리는 어노테이션 정리(1월 초반부) (0) | 2023.01.14 | 
 
                            Comments
                            
                        
                        
                        
                    
                    
                    
                        
                    
                