Wenn die dynamische Verwendung von Proxies, wie gelange ich zu den Anmerkungen des zugrunde liegenden Objekts?

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

  •  02-07-2019
  •  | 
  •  

Frage

Wenn die dynamische Proxies, wie gelange ich zu den Anmerkungen des zugrunde liegenden Objekts?

Im einzelnen Einstellungen eines ORM-Objekt Ich bin mit Anmerkungen versehen mit @Column ( „client_id“) und dann eine dynamische Proxy halten machen verfolgen, wenn die kommentierten Setter genannt werden, aber ...

Es scheint nicht, dass die kommentierte Proxy kurz eine der zugrunde liegenden Anmerkungen hält so die bei jedem Aufruf Reflexion durchführt, wie ich den Proxy die Anmerkungen der Klasse machen Sie es Proxying?

Danke, Allain

War es hilfreich?

Lösung

AFAIK, es hängt von Ihrer Bytecode Injektion lib. Denken Sie auch daran, dass typischerweise Anmerkungen nicht vererbt werden (auferlegt durch die Java-Spezifikation). Wenn Sie die ursprüngliche Klasse zugreifen möchten, und verwenden CGLIB, können Sie diese Schnipsel verwenden:

 if (Enhancer.isEnhanced(getClass())) {
    currClass = UnEnhancer.unenhance(getClass());
 } else {
    // else, let's get the original class directly
    currClass = getClass();
 }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top