2012-05-16 12 views
9

स्प्रिंग 3.1 में नए Cache Abstraction के बारे में पढ़ना, मैं इस प्रोजेक्ट को अपनी प्रोजेक्ट पर लागू करना चाहता था।स्प्रिंग 3.1 कैश एब्स्ट्रैक्शन पैरामीटर के बिना

क्या मैं उस विधि को कॉल कैश कर सकता हूं जिसमें कोई पैरामीटर नहीं है?

@Cacheable("xCache") 
public List<X> loadAllX() { 
    ... 
} 

जुड़ा हुआ ब्लॉग पोस्ट राज्यों

एक कैश लुकअप कुंजी के रूप विधि पैरामीटर

तो यह इस पद्धति का कैश करने के लिए संभव नहीं होना चाहिए सही उपयोग करते हुए, किया जाता है?

संक्षिप्त उत्तर: हां, किसी भी तर्क के बिना विधियों को किसी भी अन्य तरीकों की तरह कैश किया जाएगा। मुझे लगता है कि उस विधि के लिए कैश में बिल्कुल एक प्रविष्टि होगी।

+0

संभावित डुप्लिकेट [उपयोग @ के लिए उपयोग करने योग्य वसंत में गैर-तर्क विधि] (http://stackoverflow.com/questions/11389889/use-cahceable-for-non-argument-method-in-pring) –

उत्तर

10

आप को यहां बताए गए "कैश स्पेल उपलब्ध मेटाडाटा" का उपयोग करके इस व्यवहार को ओवरराइड कर सकते हैं:

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/cache.html#cache-spel-context

अपने उदाहरण में, आपको निम्न निर्दिष्ट कर सकते हैं:

@Cacheable(value = "xCache", key = "#root.methodName") 
public List<X> loadAllX() { 
    ... 
} 

कौन सा कुंजी "loadAllX" के साथ "xCache" में एक्स की सूची को कैश करेगा

संबंधित मुद्दे