Как при использовании динамических прокси получить доступ к аннотациям базового объекта?

StackOverflow https://stackoverflow.com/questions/144936

  •  02-07-2019
  •  | 
  •  

Вопрос

Как при использовании динамических прокси получить доступ к аннотациям базового объекта?

В частности, я аннотирую настройки объекта ORM с помощью @Column("client_id"), а затем заставляю динамический прокси отслеживать, когда вызываются аннотированные установщики, но...

Не похоже, что аннотированный прокси сохраняет какие-либо базовые аннотации настолько, что не выполняет отражение при каждом вызове, как мне заставить прокси иметь аннотации класса, который он проксирует?

Спасибо, Аллейн

Это было полезно?

Решение

AFAIK, это зависит от вашей библиотеки внедрения байт-кода.Кроме того, помните, что обычно аннотации не наследуются (навязываются спецификацией Java).Если вы хотите получить доступ к исходному классу и используете CGLIB, вы можете использовать этот фрагмент:

 if (Enhancer.isEnhanced(getClass())) {
    currClass = UnEnhancer.unenhance(getClass());
 } else {
    // else, let's get the original class directly
    currClass = getClass();
 }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top