redis 注解方式-------Cacheable

    技术2022-07-11  110

    @Service public class cacheableServiceImpl implements cacheableService { /** * 方法无参时,默认的key为 SimpleKey [] * * 注:前提条件是 不指定key属性,也无keyGenerator */ @Cacheable(cacheNames = "TestKeySpace") @Override public void methodOne() { System.out.println("cha入"); } /** * 方法只有一个参数时,默认的key为 传入的参数的toString结果 * 如:调用此方法时,传入的传入的参数为 字符串paramA, 那么key就为paramA * * 注:前提条件是 不指定key属性,也无keyGenerator */ @Cacheable(cacheNames = "TestKeySpace") @Override public void methodTwo(String chen) { System.out.println("cha入"); } /** * 方法只有一个参数时,默认的key为 传入的参数的toString结果 * 如:调用此方法时,传入的传如参数为 User对象, 那么就为以 User对象的toString结果作为key * * 注:前提条件是 不指定key属性,也无keyGenerator */ @Cacheable(cacheNames = "TestKeySpace") @Override public User methodThree(User user) { System.out.println("cha入"); return user; } @Cacheable(cacheNames = "TestKeySpace") @Override public void methodfour(Map<Object, Object> objectObjectMap) { System.out.println("cha入"); } /** * 说明一: 若主动设置了key属性,那么以主动设置的key属性值为准(无论是否注入有KeyGenerator) * * 说明二: 如果key为常量的话,需要再使用单引号''引起来 * */ @Cacheable(cacheNames = "TestKeySpace", key = "'i_am_key'") @Override public void methodfive(String dfdfdfdf) { System.out.println("cha入"); } /** * 说明一: 若主动设置了key属性,那么以主动设置的key属性值为准(无论是否注入有KeyGenerator) * * 说明二: 我们也可以使用Spring Expression Language (SpEL)动态设置key的属性值, * 通过 【#形参名】 或 【#p参数索引】来动态获取传入的参数 * * 如: 这里的 key = "#str" 等价于 key = "#p0" 等价于 key = "#a0" * 辅助理解:p即params , a 即 args */ @Cacheable(cacheNames = "TestKeySpace", key = "#str") @Override public void methodSeven(String str) { System.out.println("cha入"); } @Cacheable(cacheNames = "TestKeySpace", key = "#str.hashCode() + '*****' + #p1.name") @Override public void methodEight(String str, User user) { } }

     

    Processed: 0.016, SQL: 9