Я пытаюсь разработать модуль с maven во время компиляции или с компонентом Spring при запуске приложения, этот модуль должен будет сканировать конечные точки нескольких классов RestController и смотреть в их код, если указано c вызывается тип метода, а затем генерируется JSON конечных точек, из которых c конечные точки запускают эту специфицированную *1013* функцию и выгружают всю информацию (путь конечной точки, подпуть, Http-метод ...), цель состоит в том, чтобы получить все данные о том, кто вызвал этот метод и с какими параметрами,
Основная проблема заключается в том, что методы конечных точек не вызывают функцию непосредственно в своем теле, они вызывают другой объект на бизнес-уровне,
Есть ли способ рекурсивно отслеживать вызов метода, начиная с определенного c класса?
Вот небольшой пример:
@RestController("/")
public class PersonController{
// Declarations...
@Autowired
BusinessLayer businessLayer;
@GetMapping("/persons")
public List<Person> getAllPersons(){
return businessLayer.fetchAllPersons();
}
}
public class BusinessLayer{
// Declarations...
public List<Person> fetchAllPersons(){
CustomHttpClient customHttpClient= new CustomHttpClient();
customHttpClient.sendHTTPRequest("http://lorem-ipsum:8080/persons",Http.GET);
//...
}
}
Есть ли способ узнать, кто вызывает CustomHttpClient Метод и с какими параметрами? Зная, что даже бизнес-уровень может вызывать другие методы, которые делают то же самое, поэтому в конце нужно рекурсивно сканировать код в поисках определенного c вызова.