当我们用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中配置的
相关推荐
在现代Web应用开发中,Spring框架因其强大的依赖注入和面向切面编程功能而被广泛采用。特别是在Java EE环境中,如何有效地整合Spring与Servlet、Filter等核心组件,对于构建高性能、高灵活性的应用系统至关重要。...
Spring注入Filter与Listener的方法.png
在Spring框架中,依赖注入(Dependency Injection,DI)是一种核心特性,它允许对象之间的依赖关系在运行时由Spring容器管理,而不是由代码直接创建。在SSH(Struts、Hibernate、Spring)整合的Web应用中,Spring的...
本篇我们将深入探讨如何在Spring Security中自定义Filter,以及相关的知识点。 首先,我们需要了解Spring Security的Filter工作原理。Spring Security的过滤器链是由`DelegatingFilterProxy`管理的,它会委托给`...
### web.xml文件中配置(servlet, spring, filter, listener)的加载顺序 在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如...
1. `GenericFilterBean`:Spring框架提供的Filter基类,支持Spring的依赖注入。 2. `OncePerRequestFilter`:Spring MVC提供的过滤器,确保每个请求只调用一次`doFilterInternal()`方法。 3. `...
在Spring MVC中,常见的Filter包括字符编码Filter、登录验证Filter等。 - `CharacterEncodingFilter`:确保请求和响应的字符编码一致,防止乱码问题。配置示例: ```xml <filter> <filter-name>...
原理过程 Springboot中会使用FilterRegistrationBean来注册Filter,Filter是Servlet规范里面的,属于容器范围,Springboot中没有web.xml,那Springboot中,不用管Filter是如何交给Ser...SpringBoot整合XssFilter,...
- **功能简介**:包含了 Web 应用开发时使用 Spring 框架时所需的核心类,包括自动载入 WebApplicationContext 特性的类、Struts 与 JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。 - **应用场景**:...
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/* </filter-mapping...
Spring框架是Java开发中的核心组件,它提供了许多高级特性,如依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)以及容器管理的事务等。以下将详细介绍Spring学习笔记中的...
然而,在实际操作中,可能会遇到一个问题:当我们在自定义的Realm类中使用注解(@Autowired)尝试注入Spring管理的Bean时,这些属性并未被正确注入。本文将详细介绍这个问题的原因及解决方法。 首先,我们需要理解...
Spring框架是中国著名的Java开发者Rod Johnson在其著作《Expert One-on-One J2EE Design and Development》中提出的,它旨在简化企业级应用开发,通过依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-...
在Spring Boot应用中,XSS(Cross Site Scripting,跨站脚本攻击)是一种常见的安全威胁,它允许攻击者向Web页面注入恶意脚本,从而影响用户的安全。本项目"spring boot xss防御"旨在介绍如何在Spring Boot环境中...
1. **依赖注入(DI)**:在Spring中,DI可以通过以下几种方式进行: - Setter注入:通过调用Bean的setter方法设置依赖对象。 - 构造器注入:通过构造函数传递依赖对象。 - 注解注入:使用`@Autowired`,`@...
Struts2会自动从Spring容器中查找并注入Action所需的bean。 通过这样的整合,我们能够实现业务逻辑和视图层的解耦,使代码更加模块化,便于维护和扩展。同时,Spring的IoC和AOP特性也能够更好地支持企业级应用的...
在`web.xml`中,将Struts2 Filter与Spring结合,使得Struts2的动作可以通过Spring容器获取。同时,Spring的`applicationContext.xml`中需配置SessionFactory和数据源,以便Spring能够管理Hibernate的会话。 对于...
SSM(Spring、Struts、MyBatis)是Java Web开发中的经典组合,其中Spring主要负责依赖注入和事务管理,Struts作为MVC框架处理请求和视图,MyBatis则作为持久层框架简化数据库操作。 Spring Web模块包含了以下关键...