क्या कोई साधारण शर्तों में ProxyFactoryBean समझा सकता है? मुझे लगता है कि यह बहुत सारे स्थानों को उद्धृत किया जा रहा है।वसंत में ProxyFactoryBean
उत्तर
ProxyFactoryBean
का उपयोग मौजूदा लक्ष्य बीन में इंटरसेप्टर तर्क लागू करने के लिए किया जाता है, ताकि जब उस बीन पर विधियों को लागू किया जाए, तो उस विधि कॉल के पहले और बाद में इंटरसेप्टर निष्पादित किए जाते हैं। यह आस्पेक्ट ओरिएंटेड प्रोग्रामिंग (एओपी) का एक उदाहरण है।
यह एक साधारण उदाहरण का उपयोग करके सबसे अच्छा समझाया गया है। एओपी के लिए क्लासिक उपयोग-केस एक विधि कॉल के परिणामस्वरूप कैशिंग लागू करना है।
<bean id="targetService" class="com.x.MyClass"/>
<bean id="cachingInterceptor" class="com.x.MyCachingInterceptor"/>
<bean id="cachedService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="targetService"/>
<property name="interfaces">
<list>
<value>com.x.MyService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>cachingInterceptor</value>
</list>
</property>
</bean>
हम प्रकार com.x.MyClass
है, जो इंटरफेस com.x.MyService
लागू करता है की एक सेम targetService
है: यह इस प्रकार है ProxyFactoryBean
का उपयोग कर तार हो सकता है। हमारे पास एक इंटरसेप्टर बीन भी है जिसे cachingInterceptor
कहा जाता है, जो इंटरफेस org.aopalliance.intercept.MethodInterceptor
लागू करता है।
यह कॉन्फ़िगरेशन cachedService
नामक एक नया बीन उत्पन्न करेगा, जो MyService
इंटरफ़ेस लागू करता है। उस ऑब्जेक्ट पर विधियों के लिए किसी भी कॉल को पहले cachingInterceptor
ऑब्जेक्ट की invoke()
विधि के माध्यम से पारित किया जाएगा, जो इस मामले में अपने आंतरिक कैश में पिछली विधि कॉल के परिणामों की तलाश करेगा। यह या तो कैश किए गए परिणाम को वापस कर देगा, या विधि कॉल को targetService
पर अनुचित विधि पर जाने की अनुमति देगा।
targetService
स्वयं कुछ भी नहीं जानता है, यह पूरी तरह से इस एओपी सामान से अनजान है।
ProxyFactoryBean
विभिन्न कारणों से प्रॉक्सियों को उत्पन्न करने के लिए आंतरिक रूप से वसंत के भीतर आंतरिक रूप से उपयोग किया जाता है (उदाहरण के लिए स्टब्स, लेनदेन प्रबंधन को रिमोट करना), लेकिन यह एप्लिकेशन तर्क में भी उपयोग के लिए बिल्कुल उपयुक्त है।
यहां जोड़ने के लिए सिर्फ एक चीज यह है कि यदि हमारे पास कई 'इंटरसेप्टरनाम' हैं तो उन्हें इस तरह के क्रम में लागू किया जाता है, कि सूची में पहला व्यक्ति आमंत्रण को रोकने के लिए पहला है और इसी तरह। – Vic
प्रॉक्सी फैक्ट्रीबीन मौजूदा बीन के पहलुओं को लागू करता है। आप अपने मौजूदा बीन (लक्ष्य बीन) के साथ शुरू करते हैं, जो आपके द्वारा प्रदान किए जाने वाले पहलुओं को जोड़ने के लिए "लपेटें" वसंत करता है। लौटा बीन आपके मूल बीन के समान इंटरफ़ेस है, लेकिन लक्ष्य बीन के तरीकों के आस-पास के अतिरिक्त पहलुओं के साथ।
- 1. क्या वसंत आवेदन में वसंत में 'सबकुछ' वसंत होना चाहिए?
- 2. जावा (वसंत) में वसंत-सुरक्षा के विकल्प
- 3. वसंत में संदेशइंटरपोलेटर
- 4. वसंत MVC में @service
- 5. Thread.setDefaultUncaughtException वसंत में हैंडलर
- 6. वसंत में वैश्विक गुण
- 7. वसंत
- 8. वसंत
- 9. वसंत
- 10. वसंत
- 11. वसंत
- 12. वसंत
- 13. वसंत
- 14. वसंत
- 15. वसंत
- 16. वसंत
- 17. वसंत
- 18. वसंत
- 19. वसंत
- 20. वसंत
- 21. वसंत
- 22. वसंत
- 23. वसंत
- 24. वसंत
- 25. वसंत
- 26. वसंत
- 27. वसंत
- 28. वसंत
- 29. वसंत
- 30. वसंत
क्या आपने http://www.javalobby.org/java/forums/t44746.html में "ग्लूइंग इट ऑल टुगदर" देखा है? – trashgod