मैं वसंत के साथ एक शॉपिंग कार्ट को कार्यान्वित करना चाहता हूं, इसलिए मुझे सत्र में Cart
(जिसमें उत्पादों, भुगतान प्रकार और डिलीवरी टाइप जैसी विशेषताएं हैं) को सहेजने की आवश्यकता है। मैंने इसे बीन और विशेषता "स्कोप" के साथ "सत्र" पर सेट करने का प्रयास किया है, लेकिन यह अभी काम नहीं करता है, क्या मुझे अपने नियंत्रक या Cart
कक्षा में कुछ अतिरिक्त एनोटेशन का उपयोग करना चाहिए? कोई भी उदाहरण उपयोग वास्तव में सहायक होगा :-) अग्रिम धन्यवाद।सत्र में स्प्रिंग स्टोर ऑब्जेक्ट
उत्तर
@Component
@Scope("session")
public class Cart { .. }
और फिर
@Inject
private Cart cart;
काम करना चाहिए, अगर यह वेब संदर्भ (डिस्पैचर-servlet.xml) में घोषित किया जाता है। क्योंकि आपके नियंत्रक सिंगलटन scoped (डिफ़ॉल्ट रूप से) है, तो समस्या संभवत हो रहा है आप अपने नियंत्रक में सीधे खरीदारी की टोकरी इंजेक्शन लगाने रहे हैं, तो
@RequestMapping(..)
public String someControllerMethod(HttpSession session) {
session.addAttribute(Constants.CART, new Cart();
...
Cart cart = (Cart) session.getAttribute(Constants.CART);
}
: एक वैकल्पिक विकल्प के लिए अपरिष्कृत सत्र का उपयोग करें और आपकी गाड़ी वस्तु डाल करने के लिए है , जो बीन की तुलना में व्यापक दायरा है जिसे आप इंजेक्शन दे रहे हैं। यह उत्कृष्ट लेख आपको चार दृष्टिकोणों का एक अवलोकन देता है जो आप करने की कोशिश कर रहे हैं: http://richardchesterwood.blogspot.co.uk/2011/03/using-sessions-in-spring-mvc-including.html।
यहाँ समाधान की एक त्वरित सारांश है:
- स्कोप सत्र दायरे (नियंत्रक स्तर पर उपयोग
@scope("session")
) के नियंत्रक और बस नियंत्रक में खरीदारी की टोकरी उदाहरण है। - नियंत्रक को अनुरोध करने के लिए स्कोप करें और सत्र-स्कोप्ड शॉपिंग कार्ट इंजेक्शन दिया गया है।
- बस सीधे सत्र का उपयोग करें - प्रकार की गन्दा, आईएमओ।
- वसंत की एनोटेशन
<aop:scoped-proxy/>
का उपयोग करें।
सभी विधियों में उनके पेशेवर और विपक्ष हैं। मैं आमतौर पर विकल्प 2 या 4. विकल्प के साथ जाने के 4 वास्तव में बहुत सरल है और केवल दृष्टिकोण मैं documented by Spring. देखा है
सही यूआरएल http: // richardchesterwood है। blogspot.co.uk/2011/03/using-sessions-in-spring-mvc-including.html – Gilead
धन्यवाद @ गिलाद। मैंने सही यूआरएल के साथ अद्यतन किया। –
नोट, समाधान # 4 के साथ, किसी भी विधि पर अंतिम का उपयोग न करें। ऐसा करें और वह एक्सेसर सिंगलटन होगा, सत्र में नहीं, क्योंकि एओपी फाइनल को रोक नहीं सकता है। –
तुम बस सत्र और प्रॉक्सी मोड के साथ नीचे के रूप में स्कोप एनोटेशन जोड़ने की जरूरत है
@Component
@Scope(value="session", proxyMode=ScopedProxyMode.TARGET_CLASS)
public class ShoppingCart implements Serializable{
}
कहाँ कभी आप खरीदारी की टोकरी वस्तु उपयोग करने की आवश्यकता है, तो आप कर सकते हैं autowire यह
@Service
public class ShoppingCartServiceImpl implements ShoppingCartService {
Logger logger = LoggerFactory.getLogger(ShoppingCartServiceImpl.class);
@Autowired
ShoppingCart shoppingCart;
}
प्रकटीकरण: मैं एक नमूना परियोजना है, जो वसंत MVC, AngularJS और बूटस्ट्रैप कि वसंत सत्र गुंजाइश प्रदर्शित का उपयोग करता है विकसित किया है -
+०१२३५१६४१०६१https://github.com/dpaani/springmvc-shoppingcart-sample
- 1. सत्र ऑब्जेक्ट में क्लासिक एएसपी स्टोर ऑब्जेक्ट्स
- 2. 'सत्र' सत्र स्टोर
- 3. सत्र में स्टोर सूची
- 4. टॉमकैट: डेटाबेस में स्टोर सत्र
- 5. सत्र में कैश या स्टोर?
- 6. स्प्रिंग सत्र हैंडलिंग: HttpSessionDestroyedEvent
- 7. प्लेफ्रेमवर्क में ऑब्जेक्ट सत्र
- 8. सत्र स्टोर कहलाता है?
- 9. एएसपी.NET एमवीसी स्टोर सत्र में उपयोगकर्ता इकाई
- 10. सत्र ऑब्जेक्ट
- 11. स्टोर में कस्टम गुणों को स्टोर करें Context.xml स्प्रिंग फ़ाइल
- 12. कई धागे में स्प्रिंग + हाइबरनेट सत्र प्रबंधन
- 13. स्प्रिंग एमवीसी सत्र विशेषता पहुंच
- 14. स्प्रिंग एमवीसी
- 15. किसी सत्र में स्टोर करना क्या है?
- 16. PHP - सत्र डेटा में स्टोर छवियां?
- 17. प्ले फ्रेमवर्क में सत्र में ऑब्जेक्ट (स्ट्रिंग नहीं) कैसे स्टोर करें?
- 18. SQLAlchemy, ऑब्जेक्ट को सत्र
- 19. स्प्रिंग सिक्योरिटी, स्प्रिंग एमवीसी और लॉग इन सत्र
- 20. स्प्रिंग सिक्योरिटी उपयोगकर्ता को उत्तेजित करते समय सत्र में कस्टम उपयोगकर्ता ऑब्जेक्ट का प्रबंधन कैसे करें?
- 21. क्या स्प्रिंग डिस्क में स्मृति या स्टोर में सामग्री रखेगी?
- 22. उपयोगकर्ता सत्र ऑब्जेक्ट में आप कितना डेटा स्टोर कर सकते हैं?
- 23. शुद्ध जावास्क्रिप्ट - कुकी में स्टोर ऑब्जेक्ट
- 24. एक्सेल वर्कशीट में ऑब्जेक्ट स्टोर करें?
- 25. एएसपी.नेट एमवीसी में सत्र में सरणी कैसे स्टोर करें?
- 26. कैसे स्प्रिंग MVC में सत्र जानकारी पाने के लिए 3
- 27. Grails में सेटिंग सत्र टाइमआउट स्प्रिंग सुरक्षा कोर प्लगइन
- 28. एक सत्र परिवर्तनीय में एक PHP ऑब्जेक्ट संग्रहीत
- 29. भारी लोड के तहत सत्र स्टोर के रूप में कैसंद्रा
- 30. उपयोगकर्ता भूमिकाएं - सत्र में क्यों स्टोर नहीं करते?
हां, "एक वैकल्पिक विकल्प" काम करता है, लेकिन मैं इसका उपयोग नहीं करना चाहता हूं। जब मैं अपने नियंत्रक में एक निजी विशेषता कार्ट बनाता हूं तो मुझे त्रुटि मिलती है कि "निर्भरता के लिए कोई मिलान बीन नहीं मिला: कम से कम 1 बीन जो इस निर्भरता के लिए ऑटोवायर उम्मीदवार के रूप में अर्हता प्राप्त करता है। निर्भरता एनोटेशन: {@ org.springframework.beans.factory.annotation.Autowired (आवश्यक = सत्य)} "। बीन को applicationContext.xml में ? –
tomaszf
नहीं। Dispatcher-servlet.xml में। या, जैसा कि मैंने दिखाया - एनोटेशन – Bozho
हम्म के साथ घोषित किया गया, लेकिन जब मैं एनोटेशन का उपयोग करता हूं, प्रेषक-servlet.xml में बीन परिभाषा के बिना मुझे पहले पेस्ट करने में त्रुटि मिलती है, साथ ही जब मैं एनोटेशन का उपयोग करता हूं और मैं बीन को परिभाषित करता हूं तो मुझे केवल उस नियंत्रक के साथ 404 मिलते हैं। – tomaszf