AppCacheManager.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.nuliji.tools.cache;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import org.springframework.cache.Cache;
  5. import org.springframework.cache.CacheManager;
  6. public class AppCacheManager implements CacheManager{
  7. private CacheManager redisCacheManager;
  8. private CacheManager ehCacheManager;
  9. private final static String localPrefix = "local";
  10. //@Cacheable(cacheNames="local-SSAccountInfo", key="'SSAccountInfo_' + #root.args[0].accountId", unless="#result==null")
  11. //@Cacheable(cacheNames="SSAccountInfo", key="'SSAccountInfo_' + #root.args[0].accountId", unless="#result==null") //ehcache.xml需要配置
  12. @Override
  13. public Cache getCache(String name) {
  14. if (name.startsWith(localPrefix)) {
  15. return ehCacheManager.getCache(name);
  16. } else {
  17. return redisCacheManager.getCache(name);
  18. }
  19. }
  20. @Override
  21. public Collection<String> getCacheNames() {
  22. Collection<String> cacheNames = new ArrayList<String>();
  23. if (redisCacheManager != null) {
  24. cacheNames.addAll(redisCacheManager.getCacheNames());
  25. }
  26. if (ehCacheManager != null) {
  27. cacheNames.addAll(ehCacheManager.getCacheNames());
  28. }
  29. return cacheNames;
  30. }
  31. public CacheManager getRedisCacheManager() {
  32. return redisCacheManager;
  33. }
  34. public void setRedisCacheManager(CacheManager redisCacheManager) {
  35. this.redisCacheManager = redisCacheManager;
  36. }
  37. public CacheManager getEhCacheCacheManager() {
  38. return ehCacheManager;
  39. }
  40. public void setEhCacheCacheManager(CacheManager ehcacheCacheManager) {
  41. this.ehCacheManager = ehcacheCacheManager;
  42. }
  43. }