Встречается на собеседованиях • сегодня

Как реализован паттерн Chain of Responsibility в Spring

В Spring Chain of Responsibility реализуется через цепочку фильтров (Filter) в веб-приложениях или через HandlerInterceptor. Также можно использовать @ControllerAdvice для обработки исключений в цепочке.

Пример с фильтрами:

java
@Component
@Order(1)
public class AuthFilter implements Filter {
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
        // Проверка аутентификации
        if (isAuthenticated(req)) {
            chain.doFilter(req, res); // Передаём следующему фильтру
        } else {
            throw new AuthenticationException();
        }
    }
}

@Component
@Order(2)
public class LoggingFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
logRequest(req);
chain.doFilter(req, res); // Передача дальше
logResponse(res);
}
}

text

Фильтры выполняются в порядке, заданном аннотацией `@Order`. Каждый решает, передавать ли запрос дальше (`chain.doFilter()`) или прервать цепочку.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы