`
wangchuanyin
  • 浏览: 33154 次
  • 性别: 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);
}


分享到:
评论

相关推荐

    mina2+spring结合实例

    在Java开发领域,Apache Mina和Spring框架的结合使用能够构建高效、可扩展的网络应用。Mina2作为一个轻量级的网络通信框架,提供了高度抽象的API,使得开发者可以方便地处理网络I/O操作。而Spring框架以其强大的依赖...

    Spring 管理filter 和servlet

    `targetBean`属性指定了Spring上下文中定义的Filter bean的名称,这样FilterToBeanProxy就能找到并使用正确的Filter实例。 #### 总结 通过Spring管理Filter和Servlet,不仅可以充分利用Spring的依赖注入能力,...

    spring mvc实例项目

    4. **Service层**:包含业务逻辑,可能使用了Spring的依赖注入(DI)和AOP(面向切面编程)特性。 5. **DAO层**:与数据库交互,使用JdbcTemplate执行SQL操作。 6. **ExtJS2的前端代码**:创建UI组件,通过Ajax与...

    shiro整合spring项目实例

    这包括SecurityManager、Realm、Filter等核心组件,从而利用Spring的依赖注入(DI)和面向切面编程(AOP)能力。 3. **配置SecurityManager** SecurityManager是Shiro的核心,负责协调所有的安全组件。在Spring...

    特殊情况(ActionForm,Servlet, Filter, Listener)下Spring如何注入对象

    对于Servlet、Filter和Listener,由于它们通常在Web应用启动时由容器实例化,而非由Spring管理,所以也不能直接使用@Autowired注解或其他常规的注入方式。为了解决这个问题,可以使用以下策略: 1. **Servlet**: ...

    springsecurity2 自定义filter实现

    - 自定义Filter需要一个`AuthenticationManager`实例来处理认证。你可以通过`@Autowired`注解注入,或者在配置类中使用`authenticationManagerBean()`方法。 4. **处理请求和响应**: - 在`attemptAuthentication...

    struts2+hibernate3.3+spring3.0整合实例

    Struts2、Hibernate3.3和Spring3.0是Java Web开发中著名的三大框架,它们分别负责MVC模式中的Action层、持久化层和依赖注入与业务逻辑管理。本实例将详细阐述如何将这三个框架整合在一起,实现一个完整的CRUD(创建...

    Spring struts实例

    - **Struts 2 Action与Spring Bean 结合**:Action 类通常被声明为Spring Bean,Struts 2 通过Spring获取Action实例,实现依赖注入。 - **Spring AOP 在Struts 2 中的应用**:可以利用Spring的AOP功能,对Struts 2...

    基于Spring的Restlet实例

    标题"基于Spring的Restlet实例"意味着我们将探讨如何在Spring环境中集成和使用Restlet库来开发REST服务。这通常涉及以下几个关键知识点: 1. **RESTful服务基础**:REST是一种软件架构风格,强调通过HTTP协议暴露...

    Struts2 Spring Hibernate的配置及登录实例(附源码)

    - 使用Spring的DI特性,通过@Autowired或标签将依赖注入到需要的类中。 - 配置事务管理,如使用`<tx:annotation-driven>`标签启用基于注解的事务管理。 3. **Hibernate配置** - 配置`hibernate.cfg.xml`,包括...

    Spring+Webwork+iBatis 组合实例

    ### Spring+WebWork+iBatis 组合实例详解 #### 一、概述 在Java Web开发领域,Spring、WebWork与iBatis是三个非常重要的框架。本篇将结合具体的配置文件来详细介绍这三个框架是如何协同工作的,以及它们各自在项目...

    shiro+spring mvc集成的实例源码

    3. **Spring配置文件**:定义 Shiro 的 SecurityManager bean,注入 Realm 实例,以及任何其他需要的 Shiro 组件。这里可能还包括对 Spring AOP 的配置,以便使用自定义的安全注解。 4. **Realm 类**:实现 Shiro ...

    Servlet之Filter深入讲解及实例研究

    Spring提供了一种更方便的方式来注册和管理Filter,即通过`@WebFilter`注解或Spring的`FilterRegistrationBean`。 7. **实例研究** 在给定的链接`http://blog.csdn.net/evankaka/article/details/45480101`中,博...

    Struts2+spring+hibernate整合实例

    总的来说,Struts2+Spring+Hibernate的整合实例涉及了MVC设计模式、依赖注入、事务管理、数据库操作等多个方面,是Java Web开发中常见的技术栈。通过这个实例,开发者可以深入理解如何在实际项目中整合这些框架,...

    Spring配置shiro时自定义Realm中属性无法使用注解注入的解决办法

    为了解决这个问题,我们可以调整Spring的加载顺序,确保在Shiro初始化Realm之前,Spring已经完成了Bean的实例化和依赖注入。具体步骤如下: 1. 打开`web.xml`文件,这是所有Web应用的入口配置文件。 2. 查找`...

    Spring Security3.1最新配置实例

    在这个实例中,你可能还会发现一些特定于Spring MVC的配置,因为Spring MVC是Spring框架的一部分,常与Spring Security一起使用,提供模型-视图-控制器的架构。然而,对于Struts2的应用,你需要按照Struts2的规则...

    Spring Portlet MVC的实例 eclispe project

    Eclipse是一款广泛使用的Java集成开发环境(IDE),在这里,我们有一个名为"Spring Portlet MVC的实例 eclispe project"的压缩包,其中包含了使用Eclipse创建的Spring Portlet MVC示例项目。 Portlets是Web应用程序...

    struts2+hibernate+spring经典整合实例教程

    ### Struts2+Hibernate+Spring 经典整合实例教程 #### 概述 本文档将详细介绍如何使用 MyEclipse 7.0 开发环境搭建基于 Struts2、Hibernate 和 Spring 的经典整合项目,并通过示例工程 BookShop 来具体演示整个...

    spring笔记

    + 启动 Spring 容器加载配置文件,实例化其中配置好的对象,并按照指定的名字存在 Spring 容器中 BeanFactory 和 ApplicationContext * BeanFactory:延迟加载,使用 bean 时才进行初始化 * ApplicationContext:...

Global site tag (gtag.js) - Google Analytics