annotaion 만들어서 사용하기
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface TokenRequired { }
@Aspect
@Component
public class KitriAspect {
...
//내가 만든 어노테이션 적용
@Before("@annotation(tokenRequired)")
public void test(TokenRequired tokenRequired){
log.debug("토큰이 적용되어야 합니다.");
}
}
controller에 사용하기
@GetMapping("/users")
@TokenRequired //내가 만든 어노테이션
public List<User> viewAllUsers(){
List<User> userList = userService.getAllUsers();
return userList;
}
우리가 자주 Spring framework에서 사용하는 @Transactional 또한 이러한 AOP를 통해서 만들어졌다.
근데 왜 만들어서 사용하는가?
개발하다가 보면 핀셋으로 아주 정확하게 AOP를 적용해야 할때가 존재 할 수 있다. 그럴때는 이렇게 어노테이션을 정의해서
사용하면 스트레스 받지 않고 개발을 할 수 있다는 장점이 있다 (?).. ㅎㅎ
'Spring Boot' 카테고리의 다른 글
스프링 부트를 구성하는 애노테이션 (0) | 2020.05.05 |
---|---|
스프링부트 공부 시작 (0) | 2020.05.02 |