private CacheResult beforeDataAccess(Object[] args) throws CacheUnreachableException {
		CacheResult cacheResult = new CacheResult(false);

		CacheDefinition cacheDefinition = cacheDefinitionCollection.getCacheDefinition();

		if (cacheDefinition == null) {
			return cacheResult;
		}

		// 生成缓存对象的key
		String key = cacheDefinition.generateCacheKey(args);
		if (StringUtils.isEmpty(key)) {
			LOGGER.debug("创建缓存Key失败,不进行缓存");
			return cacheResult;
		}
		cacheResult.setKey(key);

		// 获取缓存客户端
		Cache cache = cacheManager.getCache(cacheDefinition.getPool());
		cacheResult.setCache(cache);

		// 获取当前缓存的对象
		CacheObject oldItem = (CacheObject) cache.get(key);
		if (LOGGER.isDebugEnabled()) {
			LOGGER.debug("从缓存中获取Key值[" + key + "]的对象[" + oldItem + "]");
		}

		// 比较缓存版本，看缓存是否有效
		if (oldItem != null) {
			return compareVersionKey(cacheDefinition, cacheResult, oldItem, args);
		}

		return cacheResult;
	}