본문 바로가기
Spring Boot

Spring Boot 에서 AOP 활용하기

by bloodFinger 2020. 5. 29.

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