Во многих библиотеках встречается аннотированный код (например, в Spring). Но не понимаю, как его дебажить?
Можно ведь поставить брекпойнт в методе или даже поле класса и пройтись по вызовам. Всё понятно, что куда передаётся.
А случаи с аннотациями пока что - тёмный лес для меня. Брекпойнт же там нельзя поставить, поэтому не могу пошагово понять, как они работают. Поэтому остаётся неизученный кусок приложения. Как быть? Как дебажить такой код?
Сергей Горностаев, тогда так. Как сразу найти точку входа и все дальнейшие действия, которые будут выполняться для такого помеченного кода? или только Ctrl-F использовать?
quramolt, как раз за это некоторые корифеи осуждают использование аннотаций, якобы они размывают логику. Зачастую придётся просто знать, что именно обрабатывает конкретную аннотацию и где этот обработчик искать, чтобы поставить на него бряк.
Мне кажется или вы действительно не понимаете, что из себя представляют аннотации? Аннотация сама по себе ничего не выполняет. Она лишь маркирует классы/методы/поля/параметры. Эти аннотации обрабатываются spring'ом. Он понимает, что если класс помечен аннотацией @Controller, то он является контроллером и он будет искать в этом классе методы обработчики запросов, которые, например, помечены аннотацией @RequestMapping.
Я не понимаю, как быстро найти место в коде сторонней библиотеки, которое отвечает за обработку аннотаций. Как раз, например, где Spring "понимает", что класс является контроллером и т.д.
Понятно, что можно просто воспользоваться поиском по нужному названию в файлах проекта и дальше уже можно разобраться потихоньку, кто что вызывает. Ещё можно зайти в режим дебага с самого-самого начала и постепенно добраться до обработки аннотаций.
Но мне хотелось бы узнать, можно ли сразу при дебаге\просмотре кода перейти к месту, которое отвечает за обработку аннотаций?