Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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 29 30
Archives
Today
Total
관리 메뉴

tjddndk17

Spring - Annotation 정리 본문

개발/Spring

Spring - Annotation 정리

뚜루루또또 2021. 7. 21. 15:13

어노테이션?

- 주석처럼 쓰이며 클래스에 특수한 의미, 기능을 수행하도록 하는 기술

 

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
Comments