@Slf4j
- 로그를 남길 때 사용
- 실제 운영 환경에서는 System.out.println();을 사용하여 Console에 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용하여 로그를 출력한다.
- Log Level 설정을 통하여 Error 메세지만 출력하도록 하도록 하기도 하고 로그 메세지를 일자별로 모아서 저장하여 외부 저장소에 보관하기도 한다.
- Log Level (TRACE -> DEBUG -> INFO -> WARN -> ERROR) (default값은 INFO)
- # com.example.springbasicannotation 하위 경로들의 로그 레벨을 설정한다. logging.level.com.example.springbasicannotation=TRACE ( resources -> application.properties)
@Controller
- View가 있는 경우에 사용
- return 값이 String이면 View name으로 인식
- 논리이름 : 파일경로와는 별개로 뷰를 찾기 위한 이름
- 물리이름 : prefix (경로) + suffix(확장자) 경로 이름
@RestController
- 응답할 Data가 있을 경우 사용
- 현재는 대부분 @RestController를 사용하여 API가 만들어진다. (Restful API)
- return 값으로 View를 찾는 것이 아니라 HTTP Message Body에 Data를 입력한다.
- @Controller에 @ResponseBody가 결합된 어노테이션
- @RestController는 @Controller와 달리 각 메서드마다 @ResponseBody를 추가하지 않아도 된다.
@Component
- Spring Bean에 등록하는 역할을 수행한다.
- Spring Bean은 애플리케이션의 구성 요소를 정의하는 객체이다.
- @Indexed (클래스가 컴포넌트 스캔의 대상으로 Spring Bean에 더 빠르게 등록되도록 도와준다.)
@Target
- @Target 이 선언된 하위 어노테이션이 어떤 범위에 적용되는지 설정한다. ex) @Target(ElementType.TYPE)

@Retention
- @Retention 하위의 어노테이션이 얼마나 오래 유지되는지를 결정한다. ex) @Retention(RetentionPolicy.RUNTIME)

- SOURCE
- 소스 코드(.java)에서만 유지된다.
- 컴파일러에 의해 클래스 파일로 저장되지 않는다.
- CLASS
- 컴파일된 클래스 파일(.class)에 저장되지만, JVM이 실행 시 읽지 않는다. (주석과 같음)
- Default 값이다.
- RUNTIME
- 클래스 파일(.class)에 저장되고, JVM에 의해 런타임 시점에 읽을 수 있다.
- 즉, 실제 런타임 시점의 코드에 반영되어 영향을 준다
@Documented
- Javadoc 등의 문서화 도구에 의해 문서화되어야 함을 나타낸다.
'TIL' 카테고리의 다른 글
| Spring Annotation3 (1) | 2024.12.10 |
|---|---|
| Spring Annotation2 (0) | 2024.12.09 |
| Spring MVC (0) | 2024.12.07 |
| stream (0) | 2024.12.06 |
| Java 문법 1주차 숙제 (3) | 2024.10.14 |