Я хочу регистрировать каждое сопоставление запросов в моем методе аспекта с помощью @Before("execution(@(@org.springframework.web.bind.annotation.RequestMapping *) * *(..))")
, эта формула выполнения работает только для метода pathvariable с 1 параметром (т.е. /people/{id}
).
Для нескольких переменных в этом случае для ex getAllPeople method
этот метод аспекта не срабатывает. Как я могу сделать метод аспекта огня для каждого запроса с 1 параметром или более? Заранее спасибо.
Конфигурация моего приложения:
@Configuration
@EnableAspectJAutoProxy
public class AppConfig {
}
Мой контроллер:
@RestController
public class MainController {
@GetMapping("/people")
private ResponseEntity<People> getAllPeople(@RequestParam(name = "page", required = false) Integer page,
@RequestParam(name = "size", required = false) Integer size,
@RequestParam(name = "sortBy", required = false) Boolean sortByNameOrEpCount)
System.out.println("getall works");
}
@GetMapping("/people/{id}")
private ResponseEntity<People> getPeople(@PathVariable(name = "id") int id)
System.out.println("getpeople works");
ResponseEntity.notFound().build();
}
Мой файл аспекта:
@Aspect
@Component
public class AppAspect {
@Before("execution(@(@org.springframework.web.bind.annotation.RequestMapping *) * *(..))")
public void loggingEndPointRequests(JoinPoint joinPoint) {
System.out.println("loggingEndPointRequests" + joinPoint.getSignature().getName());
}
}