В the official document, Я видел этот фильтр регистрации.Простой регистрационный фильтр для воспроизведения
import java.util.concurrent.CompletionStage; import java.util.function.Function; import javax.inject.Inject; import akka.stream.Materializer; import play.Logger; import play.mvc.*;
public class LoggingFilter extends Filter {
@Inject
public LoggingFilter(Materializer mat) {
super(mat);
}
@Override
public CompletionStage<Result> apply(
Function<Http.RequestHeader, CompletionStage<Result>> nextFilter,
Http.RequestHeader requestHeader) {
long startTime = System.currentTimeMillis();
return nextFilter.apply(requestHeader).thenApply(result -> {
long endTime = System.currentTimeMillis();
long requestTime = endTime - startTime;
Logger.info("{} {} took {}ms and returned {}",
requestHeader.method(), requestHeader.uri(), requestTime, result.status());
return result.withHeader("Request-Time", "" + requestTime);
});
} }
Хотя это основной вопрос, не нужно ли настраивать какие-либо настройки для этого фильтра? После создания этого класса фильтра в PlayApplication этот фильтр будет применим ко всем запросам?
Во-вторых, они объясняют, что nextFilter
является следующим действием. Однако, похоже, здесь нет никаких настроек. Итак, в этом случае, какое действие будет выполнено?
Может ли кто-нибудь объяснить?