Теперь я хочу установить часовой пояс для каждого запроса, чтобы бизнес-код выполнял выборку времени на основе часового пояса, но я не хочу менять бизнес-код, потому что это слишком много !
Я попробовал AspectJ для перехвата статических методов, но обнаружил, что он может перехватывать только статические методы, определенные им самим, а не статические методы пакетов JDK, таких как LocalDateTime
Код: Выделить всё
@Aspect
@Component
@Slf4j
public class ControllerAspect {
@Pointcut("execution(* com.pkslow.springboot.controller..*.*(..))")
private void testControllerPointcut() {
}
@Pointcut("execution(* java.time.LocalDateTime.now())")
private void testControllerPointcut1() {
}
@Around("testControllerPointcut1()")
public Object etst1(ProceedingJoinPoint pjp) throws Throwable {
log.info("request");
return LocalDateTime.now(ZoneId.of("America/Chicago"));
}
}
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController {
private final TestService testService;
public TestController(TestService testService) {
this.testService = testService;
}
@GetMapping("/hello")
public String hello() {
System.out.println(LocalDateTime.now());
return "Hello, pkslow.";
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ch-request
Мобильная версия