Как я могу передать свое исключение из фильтра сервлетов в компонент Spring - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть простая реализация servletFilter:

public class ExceptionHandlerFilter implements Filter {

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException {
    try {
        filterChain.doFilter(servletRequest, servletResponse);
    } catch (Exception e) {
        servletResponse.getWriter().write("ERROR");
    } 
}

}

И у меня есть собственный обработчик исключений Spring:

@Component
public class ExceptionHadnler {

@Autowired
//some injected field

public void handle(Throwable t) {
//some hadle logic
}

}

Я хочу как-нибудь вызватьмой hadnler из фильтра сервлетов, или, по крайней мере, передать мое исключение экземпляру класса с пружинным управлением.К сожалению, невозможно вставить бобы Spring в фильтр сервлета, потому что Spring не управляет этим фильтром.Есть ли какой-нибудь способ соединить фильтр сервлета и Spring bean?

1 Ответ

1 голос
/ 15 апреля 2019

FilterRegistrationBean расширяет AbstractFilterRegistrationBean ServletContextInitializer для регистрации фильтров в контейнере Servlet 3.0+. Подобно функциям регистрации, предоставляемым ServletContext, но с дружественным дизайном Spring Bean.

GenericFilterBean Простая базовая реализация фильтра, которая обрабатывает свои параметры конфигурации (записи init-param в теге фильтра в web.xml) как свойства компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...