[SPRING] 스프링 Aspectj @ Before all rest method
SPRING스프링 Aspectj @ Before all rest method
Spring이 @GetMapping을 소개하기 전에 @RequestMapping에 관심을 갖는 주석이 하나만 있으므로이 aspect가 작동합니다
@Before("within(aa.bb.*.rest..*) && execution(public * *(..)) && @within(org.springframework.web.bind.annotation.RestController) && @annotation(org.springframework.web.bind.annotation.RequestMapping)")
그러나 @GetMapping, @PostMapping을 사용할 수있게되면이 지점은 작동하지 않지만이 주석은 @RequestMapping이라는 메타 주석을 갖습니다.
@RequestMapping / @ {Get, Post, Put, Patch, ..} 매핑을 쉽게 가로 챌 수있는 방법이 있습니까?
해결법
-
==============================
1.나는이 문법이 나를 위해 여기에서 작동한다는 것을 알았다!
나는이 문법이 나를 위해 여기에서 작동한다는 것을 알았다!
@Pointcut("execution(@(@org.springframework.web.bind.annotation.RequestMapping *) * *(..))") public void requestMappingAnnotations() { }
또한 나는 그들 모두를 열거 할 수있다.
@Pointcut("within(aa.bb.*.rest..*) && @within(org.springframework.web.bind.annotation.RestController)") public void restControllers() {} @Pointcut("@annotation(org.springframework.web.bind.annotation.RequestMapping) " + "|| @annotation(org.springframework.web.bind.annotation.GetMapping)" + "|| @annotation(org.springframework.web.bind.annotation.PostMapping)" + "|| @annotation(org.springframework.web.bind.annotation.PathVariable)" + "|| @annotation(org.springframework.web.bind.annotation.PutMapping)" + "|| @annotation(org.springframework.web.bind.annotation.DeleteMapping)" ) public void mappingAnnotations() {} @Pointcut("execution(@(@org.springframework.web.bind.annotation.RequestMapping *) * *(..))") public void requestMappingAnnotations() { } @Before("restControllers() && requestMappingAnnotations()") public void onExecute(JoinPoint jp) {}
from https://stackoverflow.com/questions/42642681/spring-aspectj-before-all-rest-method by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] @Autowired annotation은 JUnit 클래스에서 Bean을 삽입 할 수 없다. (0) | 2019.04.29 |
---|---|
[SPRING] ClientHttpRequestInterceptor를 사용하여 RestTemplate을 실행하면 GZIP 압축이 두 번 발생합니다. (0) | 2019.04.29 |
[SPRING] 자바 클라이언트로 스프링 보안 구현하기 (0) | 2019.04.29 |
[SPRING] JPA와 Spring에서 Hibernate Validator 사용하기 (0) | 2019.04.29 |
[SPRING] 봄 배치 및 봄 통합 (0) | 2019.04.29 |