คำถามติดแท็ก cdi

5
ทำไมต้องใช้ @PostConstruct
ใน bean ที่@PostConstructถูกจัดการจะถูกเรียกใช้หลังจากตัวสร้างอ็อบเจ็กต์ Java ปกติ ทำไมฉันจะใช้@PostConstructเพื่อเริ่มต้นโดยถั่วแทนนวกรรมิกตัวเอง?

6
ฉันควรใช้ @EJB หรือ @Inject
ฉันพบคำถามนี้: @Inject กับ @EJB แตกต่างกันอย่างไรแต่ฉันไม่ได้ฉลาดกว่านี้ ฉันยังไม่เคยทำ Java EE มาก่อนและฉันไม่เคยมีประสบการณ์ในการฉีดวัคซีนดังนั้นฉันไม่เข้าใจว่าควรใช้อะไรดี? @EJB เป็นวิธีการฉีดแบบเก่าหรือไม่ การฉีดจะทำโดยคอนเทนเนอร์ EJB เมื่อใช้คำอธิบายประกอบนี้ในขณะที่ใช้ @Inject ใช้กรอบงาน CDI ใหม่หรือไม่ นั่นคือความแตกต่างและฉันควรใช้ @Inject แทนที่จะเป็น @EJB หรือไม่ในกรณีนี้
148 java  jakarta-ee  ejb  cdi 

16
การระบุและการแก้ปัญหา javax.el.PropertyNotFoundException: Target Unreachable
เมื่อพยายามอ้างอิง bean ที่ได้รับการจัดการใน EL เช่นนั้น#{bean.entity.property}บางครั้งjavax.el.PropertyNotFoundException: Target Unreachableจะมีการโยนข้อยกเว้นโดยปกติเมื่อต้องการตั้งค่าคุณสมบัติ bean หรือเมื่อมีการเรียกใช้การดำเนินการ bean ดูเหมือนจะมีข้อความห้าประเภทที่แตกต่างกัน: เป้าหมายไม่สามารถเข้าถึงได้ตัวระบุ 'bean' ถูกแก้ไขเป็น null เป้าหมายไม่สามารถเข้าถึงได้ 'เอนทิตี' ส่งคืนค่าว่าง เป้าหมายไม่สามารถเข้าถึงได้ 'null' ส่งคืนค่าว่าง เป้าหมายไม่สามารถเข้าถึงได้ '' 0 '' ส่งคืนค่าว่าง เป้าหมายไม่สามารถเข้าถึงได้ 'BracketSuffix' ส่งคืนค่า null พวกเขาทั้งหมดหมายถึงอะไร? มีสาเหตุมาจากอะไรและควรแก้ไขอย่างไร?

2
จะใช้ EJB 3.1 และ CDI ได้ที่ไหน?
ฉันกำลังสร้างผลิตภัณฑ์ที่ใช้ Java EE ซึ่งฉันใช้GlassFish 3 และ EJB 3.1 แอปพลิเคชันของฉันมีเซสชั่นบีนตัวกำหนดตารางเวลาและใช้บริการเว็บ ฉันเพิ่งมารู้เกี่ยวกับApache TomEEซึ่งสนับสนุนบริบทและพึ่งพาการฉีด (CDI) คอนเทนเนอร์ GlassFish ยังรองรับ CDI ฉันสามารถเปลี่ยนถั่วเซสชั่นโดยที่ฉันไม่ต้องการคุณสมบัติใด ๆ ที่ CDI ยังไม่มีให้ได้หรือไม่? แล้วถ้าอย่างนั้นฉันจะได้รับประโยชน์อะไรบ้าง?

5
ถั่วสำรอง (@ManagedBean) หรือ CDI Beans (@Named)?
ฉันเพิ่งเริ่มอ่านผ่านCore JavaServer Faces, 3rd Ed และพวกเขาพูดแบบนี้ (เน้นของฉัน): เป็นอุบัติเหตุทางประวัติศาสตร์ที่มีกลไกสองอย่างแยกกันคือถั่ว CDI และถั่วที่จัดการโดย JSF สำหรับถั่วที่สามารถใช้ในหน้า JSF ได้ เราขอแนะนำให้คุณใช้เมล็ดพันธุ์ CDIเว้นแต่ว่าแอปพลิเคชันของคุณจะต้องใช้งานกับ servlet runner ธรรมดาเช่น Tomcat ทำไม? พวกเขาไม่ได้ให้เหตุผลใด ๆ ฉันใช้@ManagedBeanสำหรับถั่วทั้งหมดในแอปพลิเคชันต้นแบบที่ทำงานบน GlassFish 3 และฉันไม่ได้สังเกตเห็นปัญหาใด ๆ เกี่ยวกับสิ่งนี้เลย ฉันไม่ได้โดยเฉพาะอย่างยิ่งใจย้ายจาก@ManagedBeanไป@Namedแต่ฉันต้องการที่จะรู้ว่าทำไมฉันจึงควรรำคาญ
109 jsf  jakarta-ee  jsf-2  cdi 

3
Java EE 6 @ javax.annotation.ManagedBean vs. @ javax.inject.Named เทียบกับ @ javax.faces.ManagedBean
ฉันรู้สึกว่ามีความยุ่งเล็กน้อยในข้อมูลจำเพาะ Java EE 6 คำอธิบายประกอบมีหลายชุด เรามีjavax.ejbคำอธิบายประกอบเช่น@Statefulและ@Statelessสำหรับการสร้าง EJB นอกจากนี้ยังมี@javax.annotation.ManagedBeanการสร้างถั่วจัดการ มีคำอธิบายประกอบในjavax.enterprise.contextlike @SessionScopedและ@RequestScoped. นอกจากนี้ยังมี@ManagedBeanและ@SessionScoped/ @RequestScopedคำอธิบายประกอบในjavax.faces.beanแพ็คเกจอีกด้วย และเพื่อให้เหตุการณ์ต่างๆซับซ้อนขึ้นเรามีแพ็คเกจjavax.injectพร้อม@Namedคำอธิบายประกอบ ใครช่วยอธิบายว่าพวกเขาเกี่ยวข้องกันอย่างไร ฉันสามารถใช้@EJB, @Injectหรือ@ManagedProperyการฉีดถั่วอื่น ๆ ?

3
CDI และ EJB เปรียบเทียบได้อย่างไร? โต้ตอบ?
ฉันมีช่วงเวลาที่ยากลำบากในการทำความเข้าใจว่าทั้งสองมีปฏิสัมพันธ์กันอย่างไรและขอบเขตระหว่างพวกเขาอยู่ที่ใด มันทับซ้อนกัน? มีความซ้ำซ้อนระหว่างกันหรือไม่? ฉันรู้ว่ามีคำอธิบายประกอบที่เกี่ยวข้องกับทั้งสองอย่าง แต่ฉันไม่สามารถค้นหารายการทั้งหมดที่มีคำอธิบายสั้น ๆ ได้ ไม่แน่ใจว่าสิ่งนี้จะช่วยให้ชัดเจนขึ้นว่าแตกต่างกันอย่างไรหรือทับซ้อนกันอย่างไร แค่สับสนจริงๆ ฉัน (คิดว่าฉัน) เข้าใจ EJB ดีพอสมควรฉันเดาว่าฉันมีช่วงเวลาที่ยากลำบากในการทำความเข้าใจว่า CDI นำมาสู่อะไรในตารางและวิธีการแทนที่หรือปรับปรุงสิ่งที่ EJB นำเสนออยู่แล้ว
106 java  ejb  java-ee-6  cdi 

6
อะไรคือความแตกต่างระหว่าง @ApplicationScoped และ @Singleton Scopes ใน CDI
ใน CDI มีขอบเขตหลอก@ApplicationScopedและ ( javax.inject) @Singletonอะไรคือความแตกต่างระหว่างพวกเขา? นอกเหนือจากข้อเท็จจริงที่เป็นผู้รับ@ApplicationScopedมอบฉันทะและ@Singletonไม่ใช่ ฉันสามารถเปลี่ยน@Singletonถั่วเป็น@ApplicationScoped? สามารถ@ApplicationScopedถั่วมีสอง (หรือมากกว่า) กรณี?
96 java  scope  cdi 

7
WELD-000072 Managed bean ที่ประกาศขอบเขตการพาสซีฟต้องสามารถส่งผ่านได้
ฉันเขียนโปรแกรมง่ายๆในเว็บฟอร์ม java แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: WELD-000072 ถั่วที่มีการจัดการที่ประกาศขอบเขตการส่งผ่านจะต้องสามารถส่งผ่านได้ Bean: Managed Bean [คลาสBeanPakage.DemoBeans] ที่มีคุณสมบัติ [ @Any @Default @Named] ใครช่วยบอกทีว่าข้อผิดพลาดนี้มาจากไหน import javax.enterprise.context.SessionScoped; import javax.inject.Named; @Named("DemoBeans") @SessionScoped public class DemoBeans { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
90 java  cdi  jboss-weld 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.