Jetcache获取cache对象
@Component
public class JetcacheUtil implements ApplicationContextAware {
private ApplicationContext applicationContext;
private SpringConfigProvider springConfigProvider;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
this.springConfigProvider = applicationContext.getBean("springConfigProvider", SpringConfigProvider.class);
}
public void put(String name, Object key, Object value, int expire, TimeUnit unit) {
Cache cache = getCache(name);
cache.put(Lists.newArrayList(key), value, expire, unit);
}
private Cache getCache(String name) {
SimpleCacheManager cacheManager = springConfigProvider.getCacheManager();
return cacheManager.getCache(name);
}
}
SpringConfigProvider是通过JetCacheAutoConfiguration获取
//com.alicp.jetcache.autoconfigure.JetCacheAutoConfiguration
@Configuration
@ConditionalOnClass(GlobalCacheConfig.class)
@ConditionalOnMissingBean(GlobalCacheConfig.class)
@EnableConfigurationProperties(JetCacheProperties.class)
@Import({RedisAutoConfiguration.class,
CaffeineAutoConfiguration.class,
MockRemoteCacheAutoConfiguration.class,
LinkedHashMapAutoConfiguration.class,
RedisLettuceAutoConfiguration.class,
RedisSpringDataAutoConfiguration.class})
public class JetCacheAutoConfiguration {
public static final String GLOBAL_CACHE_CONFIG_NAME = "globalCacheConfig";
private SpringConfigProvider _springConfigProvider = new SpringConfigProvider();
private AutoConfigureBeans _autoConfigureBeans = new AutoConfigureBeans();
private GlobalCacheConfig _globalCacheConfig;
@Bean
@ConditionalOnMissingBean
public SpringConfigProvider springConfigProvider() {
return _springConfigProvider;
}
......
}