ฉันกำลังใช้ Seam เพื่อฉีดถั่วให้กับคอนโทรลเลอร์ของฉันโดยใช้ @In คำอธิบายประกอบ คลาสที่ฉีดมีคำอธิบายประกอบที่กำหนดเอง เมื่อเรียก injectedClass.getClass().getAnnotation(annotationClass) ก็จะส่งคืนค่าว่าง
เมื่อทำการดีบัก ฉันพบว่า Seam ส่งผ่านอินสแตนซ์พร็อกซี ดังนั้น getClass() จึงส่งคืน InjectedClass_$$_javassist_seam_5 ซึ่งไม่มีคำอธิบายประกอบที่กำหนดเองของฉัน
ฉันจะรับคำอธิบายประกอบที่กำหนดเองจากคลาสพร็อกซีได้อย่างไร
ชั้นเรียนของฉันมีลักษณะดังนี้:
@CustomAnnotation(value="myvalue")
@Name("myAnnotatedClass")
public class MyAnnotatedClass extends SuperClass {...}
@Scope(ScopeType.SESSION)
@Name("myController")
public class MyController {
@In("#{myAnnotatedClass}")
private MyAnnotatedClass myAnnotatedClass;
public void actionMethod(){
//call another class which call myAnnotatedClass.getClass().getAnnotation(CustomAnnotation.class)
//then do some reflection for MyAnnotatedClass fields
}
}