Spring에 대해 공부하면서 annotation이 계속 생소했다.
다양한 annotation에 대해 앞으로 계속 정리해보려고 한다.
Annotation이란?
어노테이션은 xml 설정이 너무 길어짐에 따라 그 대안으로 나타났다. 어노테이션이란 본래 주석이라는 뜻으로 인터페이스를 기반으로 한 문법이다. 주석처럼 코드에 달아 클래스에 특별한 의미를 부여하거나, 기능을 주입할 수 있다. 또 해석되는 시점을 정할 수도 있다.
어노테이션을 세가지로 분류할 수 있다.
- Built-in annotation - JDK에 내장된 어노테이션
- Meta annotation - 어노테이션에 대한 정보를 나타내기 위한 어노테이션
- Custom annotation - 개발자가 정의한 어노테이션
Built-in Annotation
@Override
- 선언한 메소드가 오버라이딩 되었다는 것을 표시
- 이전에 메소드를 선언해놓지 않았다면 컴파일 에러 발생
@Deprecated
- 해당 메소드가 더 이상 사용되지 않음을 표시
- 해당 메소드를 사용할 경우 컴파일 경고 발생
@SuppressWarnings
- 선언한 곳의 컴파일 경고를 무시
@SafeVarargs
- 선언한 메소드가 오버라이딩 되었다는 것을 표시
- 이전에 메소드를 선언해놓지 않았다면 컴파일 에러 발생
@FunctionalInterface
- 함수형 인터페이스를 지정
- 메소드가 존재하지 않거나 1개 초과의 메소드가 존재할 경우 컴파일 에러 발생
※ context:component-scan
특정 패키지 안의 클래스들을 스캔하고, 어노테이션을 확인한 후 bean 인스턴스를 생성한다.
@Component, @Controller, @Service, @Repository 등의 어노테이션이 존재해야 bean을 생성할 수 있다.
@Autowired와 @Qualifier Annotation을 인식할 수 있다는 장점이 있다.
참고:
gmlwjd9405.github.io/2018/12/18/spring-annotation-enable.html
'Web developer > Spring' 카테고리의 다른 글
[Spring] Swagger를 사용하여 Web API 문서화 해보기 (0) | 2021.08.02 |
---|---|
[Spring] IoC & DI (0) | 2021.07.27 |
[Spring] Annotation @정리2 (0) | 2021.04.18 |
[Spring] DAO와 Mapper의 차이 (0) | 2021.04.18 |
[Spring] MVC Model 2 (0) | 2021.04.18 |
댓글