2012-03-29 17 views
34

क्या निम्नलिखित XML configuration को एनोटेशन आधारित पर कनवर्ट करना संभव है?एनोटेशन के साथ प्रोटोटाइप स्कोप्ड स्प्रिंग बीन बनाएं?

<bean id="myBean" class="my.package.MyBeanClass" scope="prototype" /> 

मैं वसंत 2.5.6 का उपयोग कर रहा हूं।

उत्तर

62

आप @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) एनोटेशन का उपयोग कर सकते हैं।

@Service 
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) 
public class CustomerService 
{ 
...... 
} 
  1. Spring API Docs
  2. Example of the mapping
  3. Scope annotation reference
+9

वहाँ भी स्ट्रिंग के बजाय का उपयोग करने के लिए एक अच्छा स्थिर है सेम/फैक्ट्री/कॉन्फ़िगर/बीनडिफिनिशन.html # SCOPE_PROTOTYPE) –

+5

स्कोप एनोटेशन जावाडोक में, निरंतर पुनः संयोजित किया गया है [कॉन्फ़िगर करने योग्य BeanFactory.SCOPE_PROTOTYPE] (http://docs.spring.io/spring/docs/3.2.5.RELEASE/javadoc -पीआई/ओआरजी/वसंतफ्रेमवर्क/सेम ​​/ कारखाना/कॉन्फ़िगर/कॉन्फ़िगर करने योग्य BeanFactory.html # SCOPE_PROTOTYPE) – jfcorugedo

+0

क्या बीनडिफिनिशन क्लास स्प्रिंग 4 में हटा दी गई है? –

2

वर्तमान spring version 4.3.2 के अनुसार, हम @Scope("prototype") एनोटेशन का उपयोग कर सकते हैं। [ `BeanDefinition.SCOPE_PROTOTYPE`] (http://static.springsource.org/spring/docs/2.5.3/api/org/springframework/:

@Scope("prototype") 
@Repository 
public class MovieFinderImpl implements MovieFinder { 
    // ... 
} 
+1

के साथ थोड़ा टाइपिंग सहेजें, मैं स्वीकृत उत्तर के रूप में प्रदान की गई स्थिरता का उपयोग करके कहूंगा, बेहतर है। – herman

+0

@herman इससे बेहतर क्या होता है? और इसके लिए एक जेएसआर मानक है? स्ट्रिंग में बदलाव होने पर – Steve

+4

@Steve (बहुत संभावना नहीं है) या आप अपने आईडीई का उपयोग करके संदर्भों की खोज करना चाहते हैं – herman