ในแอปพลิเคชัน JEE ของเรา เราได้สร้างคำอธิบายประกอบใหม่ @MyAnnotation ที่เราตั้งค่าไว้บน CDI bean (@ApplicationScoped)
จากนั้นเราก็มี interceptor ที่สกัดกั้น bean ทั้งหมดด้วยคำอธิบายประกอบ @MyAnnotation
ปัญหาคือว่ามันใช้ไม่ได้กับ bean ที่สร้างโดย @Produces วิธีการ
หมายความว่า interceptor ไม่ได้ถูกเรียกใช้
ดังนั้นถ้าเรามีคลาสนี้:
@ApplicationScoped
public class OtherClass
{
@Inject
private MyBean myBean;
public void f()
{
myBean.g();
}
}
จากนั้นด้านล่างนี้จะได้ผล:
@ApplicationScoped
@MyAnnotation
public class MyBean
{
public void g() {}
}
แต่ด้านล่างนี้จะไม่:
@ApplicationScoped
public class MyBeanProducer
{
@Produces
public MyBean create()
{
return new MyBean();
}
}
มีวิธีที่จะทำให้ interceptor สกัดกั้นถั่ว CDI ที่สร้างด้วย @Produces หรือไม่?
@ApplicationScoped
แล้วหรือยัง - ดูเหมือนว่านี่คือสิ่งที่คุณต้องการสำหรับ bean นี้ - person Nikos Paraskevopoulos   schedule 23.12.2020