tjddndk17
Spring - Annotation 정리 본문
어노테이션?
- 주석처럼 쓰이며 클래스에 특수한 의미, 기능을 수행하도록 하는 기술
Built-in Annotation
- Java에 내장되어 있는 어노테이션
Meta Annotation
- 어노테이션에 사용되는 어노테이션
- 주로 새로운 어노테이션을 정의할 때 사용
Custom Annotation
- 사용자 정의 어노테이션
@Override
- 해당 메서드가 수퍼클래스의 메서드를 오버라이딩한 메서드임을 컴파일러에게 명시
- 오버라이딩 할 때 메서드 명에서 오타가 발생할 수 있는데 컴파일러 입장에서는 새로운 메서드 인지 오버라이딩 메서드 인지 알 수 없기 때문에 해당 어노테이션을 통해 오타 발생 여부를 확인 할 수 있음
@Deprecated
- 더 이상 사용되지 말아야 할 메서드를 나타낸다
@SupressWarning
- 컴파일러의 경고를 제외 시킬때 사용
- 어떤 경고를 제외 시킬지 옵션을 줄 수 있음
@FunctionalInterface
- 현재 인터페이스가 함수형 인터페이스 라는 것을 컴파일러에게 명시
@Target
- 어노테이션이 적용가능한 대상을 지정
@Retention
- 어노테이션이 유지되는 기간을 지정
@Documented
- 어노테이션 대한 정보가 javadoc으로 작성한 문서에 포함되도록 지정
@Inherited
- 어노테이션이 자손 클래스에도 상속되도록함
@Native
- 네이티브 메서드에 의해 참조되는 상수필드에 붙이는 어노테이션
@ComponentScan
- @Component이 붙은 클래스를 찾아 Context에 Bean으로 등록해줌
@Component
- 개발자가 작성한 클래스를 Bean으로 등록해줌
- Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean)이라고 함
- value설정하지 않을시 class이름을 camelCase로 변경한 것이 Bean Id
@Configuration
- 해당 클래스 메서드에 @Bean 사용가능
@Bean
- 직접 Bean 등록 ( @Configuration 활용 )
- 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려 할때
- name설정하지 않을시 method이름을 camcelCase로 변경한 것이 Bean Id
@Autowired
- field, setter, method, constructor 에서 사용
- Type에 따라 알아서 Bean을 주입
- Type못찾으면 Name에 따라 주입 ( @Qualifier )
@Resource
- 자바 측에서 @Autowired를 참고 해 만든 어노테이션
- 사용가능 위치, 검색 우선순위 @Autowired랑 다름
- Spring 말고 다른 프레임워크 에서도 사용 가능
@Inject
- 자바 측에서 @Autowired를 참고 해 만든 어노테이션
- Spring 말고 다른 프레임워크 에서도 사용 가능
@Controller
- Spring의 Controller를 의미한다. MVC에서 Controller 클래스에 사용
@ResponseBody
- 자바 객체를 HTTP Response body 내용으로 매핑하는 역할
- 해당 메서드에서 리턴되는 값은 View를 통하지 않고 HTTP Response Body에 직접 쓰여지게 됩니다
- JSON형태로 쓰여지게 되며, 타입을 변경할 수 있습니다
@RequestBody
- HTTP Request body 내용을 자바 객체로 매핑하는 역할
@RestController
- @Controller + @ResponseBody
- 해당 클래스의 메서드는 @ResponseBody 적용
@Service
- Service Class 명시하는 용도
- 기능은 @Component 와 같음
- Spring 측에서 추가적인 exception handling을 해줄 수도 있으니 비즈니스 로직에는 해당 어노테이션을 사용
@Repository
- DAO Class 명시하는 용도
- 기본기능은 @Component 와 같음
- 특정 exception을 잡아 Spring의 unchecked exception으로 던짐( PersistenceExceptionTranslationPostProcessor )
@ControllerAdvice
- 클래스에서 사용
- Exception 전역처리
- @ExceptionHandler 을 통해 예외 처리
@RestControllerAdvice
- @ResponseBody + @ControllerAdvice
@ResponseStatus
- 메서드, 예외 클래스에 사용
- HTTP status 정보를 설정하여 리턴
- 기본값은 200 OK
@ExceptionHandler
- 메서드에서 사용
- 탐지할 예외 클래스를 정의하여 예외 처리
'개발 > Spring' 카테고리의 다른 글
[Spring] spring boot properties 정리 (0) | 2021.12.30 |
---|