นี่คือการอภิปรายที่ดีในหัวข้อ Gavin King แนะนำ @Inject เหนือ @EJB สำหรับ EJB ที่ไม่ใช่ระยะไกล
http://www.seamframework.org/107780.lace
หรือ
https://web.archive.org/web/20140812065624/http://www.seamframework.org/107780.lace
เรื่องการฉีดด้วย @EJB หรือ @Inject?
- พ.ย. 2009, 20:48 อเมริกา / New_York | Link กาวินคิง
ข้อผิดพลาดนั้นแปลกมากเนื่องจากการอ้างอิงในท้องถิ่นของ EJB นั้นควรจะเป็นอนุกรม ข้อผิดพลาดใน glassfish อาจ?
โดยทั่วไป @Inject จะดีกว่าเสมอเนื่องจาก:
it is more typesafe,
it supports @Alternatives, and
it is aware of the scope of the injected object.
ฉันไม่แนะนำให้ใช้ @EJB ยกเว้นการประกาศการอ้างอิงถึง EJB ระยะไกล
และ
เรื่องการฉีดด้วย @EJB หรือ @Inject?
พ.ย. 2009, 17:42 อเมริกา / New_York | Link กาวินคิง
มันหมายถึง @EJB ดีกว่าด้วย EJB ระยะไกลหรือไม่
สำหรับ EJB ระยะไกลเราไม่สามารถประกาศข้อมูลเมตาเช่น qualifier, @Alternative, และอื่น ๆ ในคลาส bean เนื่องจากไคลเอนต์ไม่สามารถเข้าถึงข้อมูลเมตานั้นได้ นอกจากนี้ยังต้องระบุข้อมูลเมตาเพิ่มเติมบางส่วนซึ่งเราไม่ต้องการสำหรับกรณีท้องถิ่น (ชื่อ JNDI ทั่วโลกของอะไรก็ตาม) ดังนั้นทุกสิ่งที่ต้องไปที่อื่น: คือการประกาศ @Produces
@EJB
การฉีดแบบวงกลม (ถั่วซิงเกิลตันหนึ่งและถั่วอื่นต้องการการอ้างอิงถึงกันและกัน) (มีการอ้างอิงถึงคำตอบของฉันด้านล่าง - ฉันไม่แน่ใจว่าฉันกำลังทำสิ่งที่ถูกต้องโดยเปลี่ยนไปใช้@EJB
)