|  |  | 
 |  |  | package com.dy.sso.config; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | import com.dy.common.util.NumUtil; | 
 |  |  | import com.github.benmanes.caffeine.cache.Caffeine; | 
 |  |  | import org.springframework.beans.factory.annotation.Value; | 
 |  |  | import org.springframework.cache.CacheManager; | 
 |  |  | import org.springframework.cache.caffeine.CaffeineCacheManager; | 
 |  |  | import org.springframework.context.annotation.Bean; | 
 |  |  | 
 |  |  |  | 
 |  |  | @Configuration | 
 |  |  | public class CaffeineCacheConfiguration { | 
 |  |  |     private static final int cacheInitialCapacityDefault = 10 ; | 
 |  |  |     private static final int cacheMaximumSizeDefault = 10000 ; | 
 |  |  |     private static final int cacheDurationDefault = 720 ; | 
 |  |  |  | 
 |  |  |     @Value("${pipIrr.sso.cacheMaximumSize}") | 
 |  |  |     private String cacheMaximumSize ; | 
 |  |  |  | 
 |  |  |     @Value("${pipIrr.sso.cacheDuration}") | 
 |  |  |     private String cacheDuration ; | 
 |  |  |     /* | 
 |  |  |       initialCapacity=[integer]: 初始的缓存空间大小 | 
 |  |  |       maximumSize=[long]: 缓存的最大条数 | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @Bean | 
 |  |  |     public CacheManager cacheManager() { | 
 |  |  |         int cacheMaximumSizeInt; | 
 |  |  |         int cacheDurationInt; | 
 |  |  |         if(NumUtil.isPlusIntNumber(cacheMaximumSize)){ | 
 |  |  |             cacheMaximumSizeInt = Integer.parseInt(cacheMaximumSize) ; | 
 |  |  |         }else{ | 
 |  |  |             cacheMaximumSizeInt = cacheMaximumSizeDefault ; | 
 |  |  |         } | 
 |  |  |         if(NumUtil.isPlusIntNumber(cacheDuration)){ | 
 |  |  |             cacheDurationInt = Integer.parseInt(cacheDuration) ; | 
 |  |  |         }else{ | 
 |  |  |             cacheDurationInt = cacheDurationDefault ; | 
 |  |  |         } | 
 |  |  |         CaffeineCacheManager cacheManager = new CaffeineCacheManager(); | 
 |  |  |         cacheManager.setCaffeine(Caffeine.newBuilder() | 
 |  |  |                 .initialCapacity(10) | 
 |  |  |                 .maximumSize(10000) | 
 |  |  |                 .expireAfterAccess(30, TimeUnit.MINUTES)); | 
 |  |  |                 .initialCapacity(cacheInitialCapacityDefault) | 
 |  |  |                 .maximumSize(cacheMaximumSizeInt) | 
 |  |  |                 .expireAfterAccess(cacheDurationInt, TimeUnit.MINUTES)); | 
 |  |  |  | 
 |  |  |         return cacheManager; | 
 |  |  |     } |