का उपयोग कर ऑन-डिमांड बनाना, मैं कारखाने-आइश पैटर्न में स्टार्टअप के बाद कुछ वसंत बीन्स बनाना चाहता हूं। उदाहरण के लिए हर बार मेरे पास कुछ काम करने के लिए होता है और मुझे एक कार्य बीन (जो शायद अन्य सिंगलटन वसंत सेम पर निर्भर करता है) बनाने की आवश्यकता होती है और इसे निष्पादित करती है।वसंत
समवर्ती रूप से निष्पादित करने के लिए काम के कई टुकड़े हो सकते हैं ताकि प्रत्येक कार्य बीन को स्वतंत्र (प्रोटोटाइप) होना आवश्यक हो।
क्या कोई आम पैटर्न लोग इसे प्राप्त करने के लिए उपयोग करते हैं?
जैसा कि मैंने इसे देखा है, मुझे किसी भी तरह कंटेनर/एप्लिकेशन कॉन्टेक्स्ट के साथ बातचीत करने की आवश्यकता है, लेकिन मैं वास्तव में एप्लिकेशन कॉन्टेक्स्ट/बीन फैक्ट्री के इंजेक्शन स्कैटर नहीं करना चाहता हूं और हर जगह बीन ("...") प्राप्त करने के लिए कॉल करता हूं।
मैं कुछ इस तरह के बारे में सोचा
<bean id="myTask" class="MyTask" scope="prototype">
<property name="entityManager" ref=".../>
...
</bean>
<bean id="myTaskExecutor" class="MyTaskExecutor">
<property name="taskFactory">
<xxx:factory bean="myTask"/>
</property>
</bean>
और फिर कोड
class MyTaskExecutor
{
private Factory<MyTask> taskFactory;
public void setTaskFactory(Factory<MyTask> taskFactory)
{
this.taskFactory = taskFactory;
}
}
और शायद एक एनोटेशन (ध्यान दें "फैक्टरी" कुछ मैं कल्पना कर रहा हूँ, के बजाय कुछ है कि मौजूद है) संस्करण
class MyTaskExecutor
{
@Factory(MyTask.class)
private Factory<MyTask> taskFactory;
}
शायद पहले से ही कुछ ऐसा है? या मैं कहीं मौलिक कुछ याद कर रहा हूँ।
मुझे एहसास है कि मेरे पास सिंगलटन माईटास्क फैक्ट्री हो सकती है और इसका उपयोग "नया" का उपयोग करने के लिए तत्काल करने के लिए किया जाता है, लेकिन फिर मुझे कारखाने से अपने सभी आश्रितों को पास करना होगा जो गलत लगता है।
तो मैं सवाल को योग करने के लिए लगता है कि
है क्या है आवेदन कोड के भीतर से मांग पर प्रोटोटाइप वसंत सेम बनाने की सिफारिश की तरीका है?
किसी भी इनपुट की सराहना करें।
मैं तुम्हें क्या कह रहे हैं मिलता है लेकिन यह अभी भी एक महान समाधान का मन नहीं करता (मैं ऊपर एक कारखाने होने का उल्लेख किया)। इस बात पर विचार करें कि क्या माईटास्क की अन्य प्रोटोटाइप स्कॉप्ड बीन्स पर निर्भरता है, प्रत्येक अपनी निर्भरता के साथ। मुझे या तो फैक्ट्री में उन सभी का निर्माण करना होगा (और अपने आश्रितों को अपने कारखाने में इंजेक्ट करना होगा) और उन्हें माईटास्क के माध्यम से पास करना होगा, या माईटास्क उन्हें बनाना होगा, और फैक्ट्री को अन्य सभी प्रोटोटाइप बीन के आश्रितों में पास करना होगा। सभी एकमात्र के लिए वसंत का उपयोग नहीं के बराबर की तरह लगता है यही कारण है, केवल इस मामले में यह प्रोटोटाइप scoped सेम के लिए है में। –
के बारे में '@ Configurable' – skaffman