java - 获取过滤器类中的 Autowired 服务

标签 java spring-mvc filter autowired

有一个错误:

java.lang.IllegalStateException: 
No WebApplicationContext found: no ContextLoaderListener registeredatorg.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:252)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

并且我的web.xml配置被声明为DelegatingFilterProxy。如果有不同的身份验证规则,我如何在过滤器中写入?通过那些 diff url 名称?

public class SecurityFilter implements Filter{
@Autowired
private TokenService tokenService;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}

@Override
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    String token = request.getParameter("token");//:TODO}}

Spring 配置是:

<bean id="securityFilter" class="xx.filter.SecurityFilter"></bean>

最佳答案

过滤器类不是 spring 指定的类,因此不会加载任何依赖于 spring 的相关类。理想情况下,如果您将 UserFilter 注释为 spring 组件,那么您的 @autowired 依赖项也会加载。

关于java - 获取过滤器类中的 Autowired 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30554688/

相关文章:

java - 为什么日期/时间戳差异始终为 NULL?

java - 发生java.lang.ClassCastException时如何确定实际类?

java - View 解析出错?

javascript - Netsuite - 如何过滤多个记录的项目搜索

javascript - 将新的过滤器功能与现有分页合并并过滤 jQuery/Javascript

java - spring mvc使用model.addAttribute(nav)无法在jsp中用${nav.id}获取父类的属性

spring - 重写 Spring-Social ConnectController 并添加拦截器

java - apache 中没有错误,但出现 404 错误

Python 过滤器/最大组合 - 检查空迭代器

java - Alpha beta 修剪没有产生好的结果