Я использую @Autowire в пользовательском классе фильтра.Я получаю исключение нулевого указателя.
Работает ли @Autowire в фильтре?
вот код:
public class MyFilter extends CustomFilter {
@Autowire
public MyClass myClass;
@Override
public String getInfo(){
return myClass.getMessage();
}
}
Так я зарегистрировал свой компонент в классе конфигурации
@Configuration
public class ConfigLoader{
@Bean
public FilterRegistrationBean myFilterBean() {
final FilterRegistrationBean filterBean = new FilterRegistrationBean();
filterBean.setFilter(new MyFilter());
filterBean.addUrlPatterns("/*");
return filterBean;
}
}
Пользовательский фильтр:
public abstract class CustomFilter implements Filter {
public FilterConfig getFilterConfig() {
return this.filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
chain.doFilter(req, resp);
this.clearContext();
}
protected abstract String getInfo();
}