Guice вызывает перехватчики в том порядке, в котором они были зарегистрированы. Поэтому, если вы определите их примерно так:
bindInterceptor(any(), annotatedWith(Retry.class), retryInterceptor);
bindInterceptor(any(), annotatedWith(Transactional.class), transactionalInterceptor);
или
bindInterceptor(any(), annotatedWith(Retry.class), retryInterceptor, transactionalInterceptor);
retryInterceptor
будет выполнено до transactionalInterceptor
.
То же самое применимо, если у вас несколько модулей - перехватчики из первого модуля выполняются раньше, чем перехватчики модуля секунд и т. Д.