2011-10-19 14 views
5

वहाँ किसी भी तरह से नाम प्रारंभ करने में बीन javax.inject.Named/javax.enterprise.context.ApplicationScoped@ManagedBean(eager=true)javax.faces पैकेज से तरह से annotaded है?JSF नाम बीन, उत्सुक आवेदन scoped (उर्फ @ManagedBean (उत्सुक = true))

@Named 
@ApplicationScoped 
public Mail() { ... } 

जब मैं एप्लिकेशन शुरू होता हूं तो मैं इस कक्षा को लोड करना चाहता हूं, न कि जब वेबप्लिकेशन इस बीन को संदर्भित करता है।

ps। जेएसएफ 2.1
ग्लासफिश द्वारा इंजेक्शन बीन 3.1

उत्तर

3

आप एक सीडीआई एक्सटेंशन बना सकते हैं जिसमें उसकी एक विधि पर @Observes AfterBeanDiscovery पैरामीटर है। वहां आप बीन को तुरंत चालू कर सकते हैं और इस प्रकार कंटेनर शुरू होने पर इसे प्रारंभ कर सकते हैं। सीओडीआई ने आपके लिए उन चीजों को आसान बना दिया है, https://cwiki.apache.org/confluence/display/EXTCDI/Core+Usage#CoreUsage-Startup

देखें