Я использую 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;
}
}