`
wangchuanyin
  • 浏览: 31303 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

filter里使用spring 注入实例失败

 
阅读更多
在web开发中我们有时候会想要在请求的过滤器中做一些事情,此时可能依赖其他的对象。这些对象由spring来管理,假如在启动时候已经由容器帮助你实例化了。这时你想在filter里使用,并注入到filter里,在使用对象的时候就会报空指针,意味着注入失败。

后来仔细分析了下web.xml加载顺序,才明白是怎么回事。
不管你的xml元素位置在哪,最终的启动顺序是这样的。
context-param -> listener -> filter -> servlet


也就是说你在容器启动过程中filter先实例化,此时根本没实例化org.springframework.web.servlet.DispatcherServlet
所有导致了spring管理的对象没有被加载。

解决方法是我们可以在 context-param节点中的spring context 里去扫下你的对象包,或在里面配置对象bean

另外在filter 里我们是这样获取spring上下文的

public void init(FilterConfig filterConfig) throws ServletException {
ServletContext context = filterConfig.getServletContext();

ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
对象 =  ctx.getBean(对象.class);
}


分享到:
评论

相关推荐

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 第一部分 点睛Spring 4.x 第1 章 Spring ...

    SpringBoot +esapi 实现防止xss攻击 实战代码

    SpringBoot +esapi springSecurity 过滤器链集成 实现防止xss攻击 实战代码

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 第一部分 点睛Spring 4.x 第1 章 Spring ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 第一部分 点睛Spring 4.x 第1 章 Spring ...

    ssh(structs,spring,hibernate)框架中的上传下载

    3在Spring中使用org.springframework.jdbc.support.lob.OracleLobHandler处理Oracle数据库的Blob类型字段。  通过这样的设置和配置,我们就可以象持久化表的一般字段类型一样处理Blob字段了。  以上是Spring+...

    客户关系管理系统框架搭建(二)

    * spring需要的jar包 * struts2需要的jar包 * jstl 需要的jar包 * junit需要的jar包 * 包的介绍 * cn.itcast.crm.container:重新封装spring容器 * cn.itcast.crm.dao:放置的是dao接口 * ...

    J2EE应用开发详解

    57 4.3.7 Servlet协作 57 4.3.8 Filter 58 4.4 使用Servlet处理客户端请求 58 4.5 会话跟踪 61 4.5.1 使用Cookie进行会话跟踪 61 4.5.2 使用URL重写进行会话跟踪 62 4.5.3 使用隐藏表单域进行会话跟踪 63 4.6 小结 ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用、Spring核心之IoC、...

    asp.net知识库

    .NET 2.0里使用强类型数据创建多层应用 在MastPage中引用脚本资源 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) asp.net 2.0 新特性 Visual Web Development 2005开发ASP.NET使用小技巧 ASP.NET 2.0 ...

Global site tag (gtag.js) - Google Analytics