He creado una anotación repetible de java8 y quiero crear un aspecto antes de que se invoque el método que contiene la anotación. Esto parece funcionar cuando el método se anota una vez, pero no se invoca cuando tengo una anotación repetible. Estoy usando la versión 1.8.6 de aspectjrt. Parece que el aspecto no admite anotaciones repetibles. ¿Alguna solución?
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MultiCacheEvicts { MultiCacheEvict[] value(); } @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Repeatable(MultiCacheEvicts.class) public @interface MultiCacheEvict { String value(); String[] keyPrefix() default ""; } @Aspect public class MultiCacheEvictAdvice { @Before("@annotation(multiCacheEvict)") public void cacheEvict(JoinPoint joinPoint, MultiCacheEvict multiCacheEvict) { //never gets invoked when repeatable annotation present on the method } } /**This works**/ @MultiCacheEvict(value = "default", keyPrefix ={"messageAttributes"}) public void purgeCache(Set<Long> userIds) /**This doesn't works, advice never gets invoked**/ @MultiCacheEvict(value = "default", keyPrefix ={"messageAttributes"}) @MultiCacheEvict(value = "entity", keyPrefix ={"tagAttributes"}) public void purgeCache(Set<Long> userIds)