### 1. 简介 > 系统中部分热数据,放在数据库查询太慢,所以需要加缓存。 ### 2. 基本用法 ```java @Autowired private CacheComponent cacheComponent; ``` ```java cacheComponent.putObj(CacheConst.CATEGORY_ALL_LIST, resultList, Const.CACHE_ONE_DAY); ``` 更多数据类型、请直接看类里面的方法注释 ### 3. 注解设置缓存 ```java @AspectCommonCache(value = CacheConst.ADVERT_TYPE, argIndex = {0}, second = 100, arrayClass = AdvertDO.class) public List getActiveAd(Integer adType) throws ServiceException { QueryWrapper wrapper = new QueryWrapper() .eq("status", StatusType.ACTIVE.getCode()); if (adType != null) { wrapper.eq("type", adType); } return advertMapper.selectList(wrapper); } ``` 使用@AspectCommonCache,会将方法的返回值序列化后作为值,设置到Key为 CacheConst.ADVERT_TYPE + adType 的缓存中。 | 字段名 | 解释 | | ---------- | ------------------------------------------------------------ | | value | 缓存Key或缓存Key前缀 | | argIndex | 需要作为Key变量的入参 eg. adType传入为1, key为 CacheConst.ADVERT_TYPE + ":" + adType。中间的0代表第0个 | | second | 表示缓存存活时间 | | arrayClass | 返回值是数组时才需要, 需要反序列化为List泛型才需要传入。否则会自动格式化为 List 是不影响 |