interceptor 란 Filter 와 매우 유사한 형태로 존재 하지만, 차이점 Spring Context 에 등록이 된다. AOP와 유사한 기능을 제공할 수 있고, 주로 인증 단계를 처리하거나 Logging 를 처리 하는데 사용할 수 있다. 하나의 요청에 대해서 (URI) 전처리 후처리가 가능 함으로써 핵심 로직 역시 분리 할 수 있다.
💡 interceptor 란 Filter 와 매우 유사한 형태로 존재 하지만, 차이점 Spring Context 에 등록이 된다. AOP와 유사한 기능을 제공할 수 있고, 주로 인증 단계를 처리하거나 Logging 를 처리 하는데 사용할 수 있다. 하나의 요청에 대해서 (URI) 전처리 후처리가 가능 함으로써 핵심 로직 역시 분리 할 수 있다.
Spring 에 등록 시켜 주어야 한다 !!!!
활용 제안 : Filter 로깅 , 인증이 필요한 페이지라면 interceptor에서 사용해도 된다.
💡 어노테이션을 사용하게 된 이유
우리는 기존의 자바 웹 애플리케이션에서 구성과 설정값을 XML 설정 파일을 통해 명시하고 관리하였다.
어노테이션을 사용하게 될 경우 데이터에 대한 유효성 검사 조건을 보다 쉽게 파악할 수 있고, 코드가 깔끔해지게 된다. 또한 어노테이션과 리플랙션을 같이 이용하면 원하는 클래스를 주입하는 것도 가능해진다.
어노테이션의 용도
- 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공
- 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공
- 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공
어노에티션의 종류
Built-in Annotation : 자바에서 기본적으로 제공하는 어노테이션
Meta Annotation : 커스텀 어노테이션을 만들수 있게 제공된 어노테이션**
Built-in Annotation
@Retention
💡 어노테이션이 유지되는 기간을 지정하는데 사용되는 Meta Annotation이다.
기간 지정에는 다음과 같은 세 가지 유지(retention policy)를 사용할 수 있다.
유지정책(Retention policy)
- RetentionPolicy.Source : 컴파일 전까지만 유효
- RetentionPolicy.CLASS : 컴파일러가 클래스를 참조할 때까지 유효
- RetentionPolicy.RUNTIME : 컴파일 이후에도 JVM에 의해 계속 참조 가능
@Target
💡 어노테이션이 적용될 위치를 지정하는 Meta Annotation이다.
※ 사용종류
- ElementType.PACKAGE : 패키지선언
- ElementType.TYPE : 타입 선언
- ElementType.ANNOTATION_TYPE : 어노테이션 타입 선언
- ElementType.CONSRTUCTOR : 생성자 선언
- ElementType.FIELD : 멤버변수 선언
- ElementType.LOCAL_VARIABLE : 지역 변수 선언
- ElementType.METHOD : 메서드 선언
- ElementType.PARAMETER : 전달인자 선언
- ElementType.TYPE_PARAMETER : 전달인자 타입 선언
- ElementType.TYPE_USE : 타입 선언
'개발일지 > 스프링' 카테고리의 다른 글
yml 설정하기 - 2 (0) | 2022.12.08 |
---|---|
Xml, Json, Yaml 차이점 (0) | 2022.12.08 |
SpringBoot - JPA (의존성 설정), MySQL 설정, YML 파일 설정-1 (0) | 2022.12.07 |
SpringBoot - 스프링 개념 정의 (JPA) , 스프링 동작 원리 (0) | 2022.12.07 |
SpringBoot 어노테이션 만들어 AOP 활용하기 (0) | 2022.12.07 |
댓글