有一个错误:
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/