Как отличить сгенерированные методы (AspectJ)
В настоящее время я использую aspectJ @Around для проверки своего кода. Я использую компилятор aspectJ для того, чтобы сплести аспекты. НО, во время выполнения я анализирую также структуру классов, используя отражение type.getDeclaredMethods()
, Но мне нужно различать, какие методы изначально присутствовали, а какие были добавлены компилятором aspectJ. Является ли это возможным? Или есть какое-то решение?
Заранее спасибо.
1 ответ
Решение
Вы можете проверить, являются ли члены, сгенерированные AspectJ, синтетическими. Если это не так, вы можете сгенерировать аннотацию для методов, которые являются целью pointcut. Во время размышления вы можете отфильтровать участников, имеющих такую аннотацию.