`
zy116494718
  • 浏览: 477700 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Filter中注入spring

 
阅读更多

       当我们用Filter时,往往需要使用一些辅助的service,在普通的java中,只要声明(set,get方法)后在spring-application配置文件中配置就可以了,但是由于Filter与Listener需要配置在web.xml文件中,所以它们的对象是由容器创建的。通常在Spring的application-context.xml配置文件中编写的bean由Spring负责创建,所以直接在Spring配置文件配置过滤器与监听器是无法达到注入目的的。

        可以使用如下方法,例:

public class JudgeUserRole implements Filter {

	private UserRelationService userRelationService;

	public UserRelationService getUserRelationService() {
		return userRelationService;
	}
	public void setUserRelationService(UserRelationService userRelationService) {
		this.userRelationService = userRelationService;
	}

	@Override
	public void destroy() {
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
	
	 
         UserRelationship user = this.userRelationService.checkRelationship(0, "jnduan", 0, "cscs01");

        }
	@Override
	public void init(FilterConfig config) throws ServletException {

	 	ServletContext context = config.getServletContext();
		ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
		userRelationService = (UserRelationService) ctx.getBean("userRelationService");
		
	}

}

   ps: userRelationService为在spring-application中配置的

0
3
分享到:
评论
3 楼 soft_xiang 2015-04-25  
kentkwan 写道
public class MyFilter implements Filter, ApplicationContextAware {
	
	private AccountManager accountManager;

	@Override
	@PostConstruct
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub

	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		accountManager = applicationContext.getBean(AccountManager.class);
	}

}



你在瞎扯,ApplicationAwaried难道不是spring管理的,filter里面都还没有spring管理的东西
2 楼 kentkwan 2013-08-02  
public class MyFilter implements Filter, ApplicationContextAware {
	
	private AccountManager accountManager;

	@Override
	@PostConstruct
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub

	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		accountManager = applicationContext.getBean(AccountManager.class);
	}

}
1 楼 kentkwan 2013-08-02  
善用 @postConstructor 和 ApplicationAwaried接口

相关推荐

    Spring 管理filter 和servlet

    在现代Web应用开发中,Spring框架因其强大的依赖注入和面向切面编程功能而被广泛采用。特别是在Java EE环境中,如何有效地整合Spring与Servlet、Filter等核心组件,对于构建高性能、高灵活性的应用系统至关重要。...

    Spring注入Filter与Listener的方法.png

    Spring注入Filter与Listener的方法.png

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

    在Spring框架中,依赖注入(Dependency Injection,DI)是一种核心特性,它允许对象之间的依赖关系在运行时由Spring容器管理,而不是由代码直接创建。在SSH(Struts、Hibernate、Spring)整合的Web应用中,Spring的...

    springsecurity2 自定义filter实现

    本篇我们将深入探讨如何在Spring Security中自定义Filter,以及相关的知识点。 首先,我们需要了解Spring Security的Filter工作原理。Spring Security的过滤器链是由`DelegatingFilterProxy`管理的,它会委托给`...

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

    ### web.xml文件中配置(servlet, spring, filter, listener)的加载顺序 在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如...

    spring-boot 过滤器 filter

    1. `GenericFilterBean`:Spring框架提供的Filter基类,支持Spring的依赖注入。 2. `OncePerRequestFilter`:Spring MVC提供的过滤器,确保每个请求只调用一次`doFilterInternal()`方法。 3. `...

    spring MVC所需jar包和filter的配置

    在Spring MVC中,常见的Filter包括字符编码Filter、登录验证Filter等。 - `CharacterEncodingFilter`:确保请求和响应的字符编码一致,防止乱码问题。配置示例: ```xml <filter> <filter-name>...

    SpringBoot整合XssFilter,Jsoup等实现请求参数的过滤,处理Xss攻击及sql注入.zip

    原理过程 Springboot中会使用FilterRegistrationBean来注册Filter,Filter是Servlet规范里面的,属于容器范围,Springboot中没有web.xml,那Springboot中,不用管Filter是如何交给Ser...SpringBoot整合XssFilter,...

    spring jar 包详解

    - **功能简介**:包含了 Web 应用开发时使用 Spring 框架时所需的核心类,包括自动载入 WebApplicationContext 特性的类、Struts 与 JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。 - **应用场景**:...

    精彩:Spring Security 演讲PPT

    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/* </filter-mapping...

    Spring的学习笔记

    Spring框架是Java开发中的核心组件,它提供了许多高级特性,如依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)以及容器管理的事务等。以下将详细介绍Spring学习笔记中的...

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

    然而,在实际操作中,可能会遇到一个问题:当我们在自定义的Realm类中使用注解(@Autowired)尝试注入Spring管理的Bean时,这些属性并未被正确注入。本文将详细介绍这个问题的原因及解决方法。 首先,我们需要理解...

    Spring2.zip

    Spring框架是中国著名的Java开发者Rod Johnson在其著作《Expert One-on-One J2EE Design and Development》中提出的,它旨在简化企业级应用开发,通过依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-...

    spring boot xss防御

    在Spring Boot应用中,XSS(Cross Site Scripting,跨站脚本攻击)是一种常见的安全威胁,它允许攻击者向Web页面注入恶意脚本,从而影响用户的安全。本项目"spring boot xss防御"旨在介绍如何在Spring Boot环境中...

    spring面试题.doc

    1. **依赖注入(DI)**:在Spring中,DI可以通过以下几种方式进行: - Setter注入:通过调用Bean的setter方法设置依赖对象。 - 构造器注入:通过构造函数传递依赖对象。 - 注解注入:使用`@Autowired`,`@...

    struts2和Spring整合需要的jar包

    Struts2会自动从Spring容器中查找并注入Action所需的bean。 通过这样的整合,我们能够实现业务逻辑和视图层的解耦,使代码更加模块化,便于维护和扩展。同时,Spring的IoC和AOP特性也能够更好地支持企业级应用的...

    集合 struts2+spring+hibernate

    在`web.xml`中,将Struts2 Filter与Spring结合,使得Struts2的动作可以通过Spring容器获取。同时,Spring的`applicationContext.xml`中需配置SessionFactory和数据源,以便Spring能够管理Hibernate的会话。 对于...

    spring-web-5.2.4_spring-web_SSM框架_

    SSM(Spring、Struts、MyBatis)是Java Web开发中的经典组合,其中Spring主要负责依赖注入和事务管理,Struts作为MVC框架处理请求和视图,MyBatis则作为持久层框架简化数据库操作。 Spring Web模块包含了以下关键...

Global site tag (gtag.js) - Google Analytics