2008-09-28 52 views
4

使用動態代理時,如何訪問底層對象的註釋?使用動態代理時,如何訪問底層對象的註釋?

具體來說,我註釋一個ORM對象的設置與@Column(「的client_id」),然後作出動態代理跟蹤時,註釋setter方法被稱爲的,但是......

它不似乎註釋的代理保留了任何基礎註釋,因此對每次調用都沒有執行反射,我該如何讓代理具有它的代理類的註釋?

謝謝 阿蘭

回答

4

據我所知,這取決於你的字節碼注射庫。此外,請記住,通常註釋不會被繼承(由Java規範強加)。如果你想訪問原來的類,並且正在使用CGLIB,你可以使用這段代碼:

if (Enhancer.isEnhanced(getClass())) { 
    currClass = UnEnhancer.unenhance(getClass()); 
} else { 
    // else, let's get the original class directly 
    currClass = getClass(); 
}