@Cacheable не работает с Spring-AOP в весеннем загрузочном проекте - PullRequest
0 голосов
/ 16 апреля 2020

Я использую Spring-AOP для ведения журнала. Я использую советы для моего контроллера и @Cacheable для моего метода обслуживания. Если я воспользуюсь советом, то кеширование не сработает, без совета кеширование работает как положено В чем может быть проблема?

Класс обслуживания

@Service
public class TestService {
    @Cacheable("mycache")
    public String fromCache(String id, UUID reqId) {
        logger.debug("request for " + reqId);
        return id + " hello";
    }
}

Класс контроллера

@RestController
public class TestController {
    @Autowired
    privet TestService service;

    @GetMapping("/test/{id}")
    public String fromCache(@PathVariable String id, @RequestParam(required = false) UUID requestId) {
        return service.fromCache(id, requestId);
    }
}

Класс рекомендаций

@Aspect
@Component
public class MethodAspect {

    @Around("execution(* com.myapp.controller..*(..))")
    public Object aroundControllers(ProceedingJoinPoint point) throws Throwable {
        // logging code
        UUID requestId = UUID.randomUUID();
        Object[] args = point.getArgs();
        args[args.length - 1] = requestId;
        Object result = point.proceed(args);
        // logging code
        return result;
    }
}
...