मैं जेएसएफ एनोटेशन और कुछ वसंत एनोटेशन का उपयोग करना चाहता हूं ताकि एक जेएसएफ प्रबंधित बीन में एक वसंत बीन/सेवा इंजेक्ट किया जा सके। (जेएसएफ बीन पर मैं केवल जेएसएफ एनोटेशन का उपयोग करना चाहता हूं) मैं @named
/@inject
जैसे एनोटेशन का उपयोग नहीं करना चाहता हूं।जेएसएफ 2 @ManagedProperty के साथ स्प्रिंग बीन/सेवा इंजेक्ट करें और कोई xml
मैंने नेट पर समाधान खोजने की कोशिश की है लेकिन बिना किसी किस्मत के।
उदाहरण
@ManagedBean
@ViewScoped
public class MyBean {
@ManagedProperty(value = "#{mySpringBean}")
private MySpringBean mySpringBean;
public void setMySpringBean(MySpringBean mySpringBean) {
this.mySpringBean = mySpringBean;
}
public void doSomething() {
//do something with mySpringBean
}
}
एक्सएमएल के उपयोग के बिना यह संभव तरह कुछ है। उदाहरण के लिए, मैं
FacesContextUtils.getWebApplicationContext(context).getBean("MySpringBean");
या faces-config.xml
<managed-bean>
<managed-bean-name>myBean</managed-bean-name>
<managed-bean-class>com.mytest.MyBean</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
<managed-property>
<property-name>mySpringBean</property-name>
<value>#{mySpringBean}</value>
</managed-property>
</managed-bean>
एनोटेशन के साथ और सभी JSF सेम/गुण और वसंत को परिभाषित करने के बिना ऊपर संभव तरह कुछ है में की तरह कुछ का उपयोग करने के लिए नहीं चाहते हैं कॉन्फ़िगरेशन xml फ़ाइलों में हर बीन के लिए बीन्स/गुण?
अजीब बात है पर एक नजर है, मैं इंजेक्शन की इस पद्धति का उपयोग करें और यह मेरे लिए काम करता है, लेकिन फिर मैं भी में संपत्ति इंजेक्शन शामिल हैं मेरी 'applicationContext.xml' भी। स्प्रिंग ईएल रिज़ॉल्वर ने देखा है कि मैंने देखा है कि ViewScoped बीन्स के साथ काम नहीं करता है। सत्र स्कोप्ड में इसे बदलने का प्रयास करें और देखें कि संपत्ति इंजेक्शन हो गई है या नहीं। –
मैं applicationContext.xml से बचना चाहता हूं (मैं थोड़ा जिद्दी हूँ! धन्यवाद) लेकिन धन्यवाद :) – Dimman