מטמון אביב - יצירת KeyGenerator מותאם אישית

1. סקירה כללית

במדריך מהיר זה, אנו הולכים להמחיש כיצד ליצור מחולל מפתחות מותאם אישית עם Spring Cache.

להקדמה למודול הנ"ל, עיין במאמר זה.

2. KeyGenerator

זה אחראי על יצירת כל מפתח עבור כל פריט נתונים במטמון, אשר ישמש לחיפוש פריט הנתונים בעת אחזורו.

יישום ברירת המחדל כאן הוא SimpleKeyGenerator - המשתמשת בפרמטרי השיטה המסופקים ליצירת מפתח. פירוש הדבר שאם יש לנו שתי שיטות המשתמשות באותו שם מטמון ומערכת של סוגי פרמטרים, יש סבירות גבוהה שזה יביא להתנגשות.

זה גם מרמז שניתן להחליף את נתוני המטמון בשיטה אחרת.

3. מותאם אישית KeyGenerator

א KeyGeneratorצריך ליישם שיטה אחת בלבד:

יצירת אובייקט (אובייקט אובייקט, שיטת שיטה, אובייקט ... params)

אם הוא לא מיושם או נעשה בו שימוש נכון, זה יכול להוביל להחלפת נתוני מטמון.

בואו נסתכל על היישום:

מחלקה ציבורית CustomKeyGenerator מיישמת את KeyGenerator {Object public generate (Object Object, Method Method, Object ... params) {return target.getClass (). getSimpleName () + "_" + method.getName () + "_" + StringUtils. arrayToDelimitedString (params, "_"); }}

לאחר מכן, יש לנו שתי דרכים אפשריות להשתמש בו; הראשון מכריז על שעועית ב ApplicationConfig.

חשוב להעיר שהכיתה צריכה להתרחב מ CachingConfigurerSupport או ליישם CacheConfigurer:

@EnableCaching @Configuration מחלקה ציבורית ApplicationConfig מרחיב את CachingConfigurerSupport {@Bean CacheManager הציבור cacheManager () {SimpleCacheManager cacheManager = SimpleCacheManager חדש (); Cache booksCache = ConcurrentMapCache חדש ("ספרים"); cacheManager.setCaches (Arrays.asList (booksCache)); החזר cacheManager; } @Bean ("customKeyGenerator") KeyGenerator ציבורי keyGenerator () {להחזיר CustomKeyGenerator חדש (); }}

הדרך השנייה היא להשתמש בו רק לשיטה מסוימת:

@Component בכיתה ציבורית BookService {@Cacheable (value = "books", keyGenerator = "customKeyGenerator") רשימה ציבורית getBooks () {List books = ArrayList חדש (); books.add (ספר חדש ("הזייפנים", "אנדרה גייד")); books.add (ספר חדש ("פאר גינט והדה גאבלר", "הנריק איבסן")); להחזיר ספרים; }}

4. מסקנה

במאמר זה בחנו דרך ליישם מטמונים מותאמים אישית של Spring KeyGenerator.

כמו תמיד, קוד המקור המלא של הדוגמאות זמין באתר GitHub.


$config[zx-auto] not found$config[zx-overlay] not found