定义注解的方法
@Target({
ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface RedisCache {
@AliasFor("cacheNames")
String[] value() default {
};
@AliasFor("value")
String[] cacheNames() default {
};
String keyGenerator() default "";
String cacheManager() default "";
String cacheResolver() default "";
String condition() default "";
String unless() default "";
boolean sync() default false;
String key();
long time() default 300L;
}
切面实现 环绕逻辑
@Component
@Aspect
@Slf4j
public class RedisCacheAspect {
@Autowired
private RedisService redisService;
private LocalVariableTableParameterNameDiscoverer discoverer = new LocalVariableTableParameterNameDiscoverer(