`
huadi223
  • 浏览: 21629 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

在Filter和Listener中使用Spring获得bean

阅读更多

Filter注入

方式1:

在Filter的init方法中获得WebApplicationContext并调用getBean(String)方法.

这里的知识点就是如何在ServletContext中获得Spring的ApplicationContext:

public void init(FilterConfig filterConfig) throws ServletException {
	ServletContext sc = filterConfig.getServletContext();
	WebApplicationContext wac = (WebApplicationContext) sc.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
	//获得WebApplicationContext还可以调用
	//WebApplicationContextUtils.getWebApplicationContext(sc);
	//当然最后Spring都是调用getAttribute方法.
	this.myManager = (MyManager) wac.getBean("myManager");
}

方式2:

使用Spring的Filter代理类org.springframework.web.filter.DelegatingFilterProxy来实现.

然后在Spring的xml配置文件里将属性注入.

首先在web.xml里面配置Filter

<filter>
	<filter-name>MySpringFilter</filter-name>
	<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	<init-param>
		<param-name>targetBeanName</param-name>
		<param-value>myFilter</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>MySpringFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

userFilter则是我们自己的Filter在Spring中bean的name.

然后在Spring的xml配置文件中配置:

<bean id="myFilter" class="filter.MyFilter">
	<property name="myManager" ref="myManagerInSpring"></property>
</bean> 

Listener注入

原本想实现ApplicationContextAware接口,但是现在有些东西还需要测试.目前的方案是想办法获得ServletContext.如果谁知道如何用Spring自动管理Listener请吼我.

分享到:
评论

相关推荐

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

    2. **Filter**: 同样,可以在Filter的init()方法中获取ApplicationContext,或者通过ServletContextAware接口,将Spring上下文注册到ServletContext,然后在doFilter()方法中使用。 3. **Listener**: 在监听器的...

    Spring 管理filter 和servlet

    Spring通过其IoC容器,提供了更高级别的依赖管理和生命周期管理,使得Filter和Servlet能够更加灵活地与应用中的其他bean交互,避免了硬编码和降低了耦合度。 #### 实现步骤详解 1. **定义Filter或Servlet Bean** ...

    SpringBoot之Filter和Listener简单运用.rar

    在Spring Boot框架中,Filter和Listener是两种非常重要的组件,它们在Web应用程序的生命周期管理和请求处理中起到关键作用。本文将深入探讨Spring Boot如何使用Filter和Listener,以及它们各自的功能和应用场景。 ...

    web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序

    在`web.xml`中配置Spring时,通常通过Listener来加载Spring容器,这样可以在应用程序启动时初始化所有的Spring Bean。 **示例代码:** ```xml &lt;listener&gt; &lt;listener-class&gt; org.springframework.web.context....

    spring security 使用及配置

    在 Web.xml 文件中需要配置 Spring Security 的 Filter 和 Listener。在 Spring 配置文件中需要配置安全相关的 bean。数据库配置主要是用于存储用户身份和权限信息。 数据库设计 数据库设计是 Spring Security 的...

    struts2和Spring整合需要的jar包

    在Java Web开发中,Struts2和Spring是两个非常重要的框架。Struts2是一个MVC(Model-View-Controller)框架,主要用于控制应用程序的流程,而Spring则是一个全面的后端解决方案,包括依赖注入、AOP(面向切面编程)...

    SSH笔记-web应用下使用Spring

    这通常适用于需要在特定请求处理中使用Spring Bean的情况。例如,你可以创建一个`MySpringServlet`,并在`init`方法中加载Spring配置: ```java public class MySpringServlet extends HttpServlet { private ...

    Spring 3 Reference中文

    Spring的Web模块提供了基础的Web集成特性,如多部分文件上传功能、用于初始化IoC容器的listener和filter等。 1.2.4 AOP 和设备组件 面向切面编程(AOP)模块为Spring应用中的对象提供了面向切面的编程实现。它允许...

    spring boot 开发 servlet filters listeners

    在 Spring Boot 中使用 Servlet、Filter 和 Listener 可以让开发者更加灵活地控制应用的行为,特别是在处理跨多个请求的公共逻辑时尤其有用。通过本篇文章的学习,相信你已经掌握了如何在 Spring Boot 应用中使用...

    spring-framework-4.2.4 所有jar包和xsd文件

    5. `web-context.xsd`:针对Web应用的上下文配置,包含了servlet、filter和listener等元素。 使用这些jar包和xsd文件,开发者可以轻松地创建和配置Spring应用。通过IoC容器,可以管理对象的生命周期和依赖关系;...

    使用Spring Security开发安全的Java程序.pdf

    通过一个具体的例子,我们可以了解到如何在Spring 2.5和Spring Security 2.0.4环境中使用Spring Security。该框架可以支持Java 1.4及更高版本的环境,包括Java 5.0。 **2. Spring Security 安全配置** **2.1 web....

    Spring4JAR包、Spring4API,Spring4源码

    这允许Spring应用在部署和运行时更加灵活,例如,可以使用异步处理、更精细的上下文配置以及依赖注入到Servlet、Filter和Listener。这对于构建高性能、可扩展的Web应用至关重要。 在API方面,Spring4提供了许多新的...

    过滤器 spring4.1+jdk1.8版本

    本资源提供了基于Spring 4.1和Java 8 (JDK1.8) 的过滤器实现,包括必要的jar包和实例代码,这对于理解如何在实际项目中使用过滤器具有很高的参考价值。 首先,我们需要了解过滤器的基本工作原理。过滤器是实现了 ...

    spring在web.xml中和在struts中的不同配置.[收集].pdf

    ServletContext也是容器,存储了Web应用的各种属性,包括Spring的WebApplicationContext,这样其他Servlet和Filter就能通过ServletContext获取到ApplicationContext,进而访问和操作Bean。 在Struts中,Spring的...

    Spring Boot 中的Servlet简单使用

    在Spring Boot中,Servlet的使用变得非常简便,因为Spring Boot内置了Servlet容器,如Tomcat或Jetty,这些容器会自动处理Servlet的注册和管理。本文将详细介绍如何在Spring Boot中添加自定义Servlet。 首先,Spring...

    Spring MVC 入门实例

    在 Spring MVC 中, jsp 文件中尽量不要有 Java 代码, 只有 HTML 代码和"迭代(forEach)"与"判断(if)"两个jstl标签. jsp 文件只作为渲染(或称为视图 View)模板使用. 好了, 我们开始吧. 首先我们需要一个放在 WEB-INF...

    Spring Boot 学习笔记完整教程new

    12. **普通类调用Bean**:在非Spring管理的类中注入并使用Spring Bean,可以使用ApplicationContext来获取Bean实例。 13. **使用模板引擎**:Spring Boot支持多种模板引擎,如Thymeleaf和FreeMarker,用于生成动态...

    struts2+hibernate+spring整合

    在整合Spring和Struts2时,我们通常会使用Spring的IOC容器来管理Struts2的Action类。在`web.xml`文件中,我们需要配置一个Spring的上下文监听器`ContextLoaderListener`,它会在Web应用启动时加载配置文件(例如`/...

    spring-web

    Spring-Web模块也包含对Servlet Filter和Listener的支持,如`CharacterEncodingFilter`用于设置请求和响应的编码,`HttpPutFormContentFilter`帮助处理PUT请求中的表单数据。`ContextLoaderListener`用于初始化全局...

    Spring和Hibernate的整合操作示例

    在Java开发领域,Spring和Hibernate是两个非常重要的框架,它们分别负责应用的业务逻辑管理和数据持久化。Spring是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性;...

Global site tag (gtag.js) - Google Analytics