Выполнение Spring AOP не работает для нескольких параметров - PullRequest
0 голосов
/ 28 мая 2020

Я хочу регистрировать каждое сопоставление запросов в моем методе аспекта с помощью @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());
    }

}
...