`

spring拦截器配置

阅读更多

 

spring 配置文件中:

 

 

Java代码
  1. <bean id= "authInterceptor"   class = "utils.AuthMethodInterceptor" >  
  2.   
  3.     </bean>  
  4.   
  5.   
  6.     <bean  
  7.         class = "org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator" >  
  8.         <property name="interceptorNames" >  
  9.             <list>  
  10.                 <value>authInterceptor</value>  
  11.             </list>  
  12.         </property>  
  13.         <property name="beanNames" >  
  14.             <list>  
  15.                 <value>/*insert</value>  
  16.   
  17.                   
  18.             </list>  
  19.         </property>  
  20.   
  21.     </bean> 

spring 拦截器是spring AOP体系下的一个重要的子功能。它类似于web中的filter,但又比filter灵活,强大得多。许多AOP框架,包括Spring,都是以拦截器做通知模型, 并维护一个以连接点为中心的拦截器链。(见Spring Framework 开发参考手册第6章 ),拦截功能是spring AOP实现面向切面编程的一个亮点,我们这里通过一个示例来看看如何使用拦截功能的:

这个例子是通过拦截指定的bean,在外部调用他们其中的方法被之前将触发拦截器。
首先,编写一个个拦截器:SpringAOPInterceptor.java
public class SpringAOPInterceptor implements MethodBeforeAdvice {

public void before(Method method, Object[] args, Object target)
throws Throwable {
System.out .println("The Interceptor method name is: "
+ method.getDeclaringClass().getName() + ". "
+ method.getName());
String value = "" ;
for (int i=0;ilength;i++){
value += args[i].toString()+"&" ;
}
System.out .println( "The method parames is:" +value);
System.out .println( "The target class is:" + target.getClass().getName());
}
该 拦截器使用的是前置通知(before advice),它可以在该切入点也就是调用该方法前执行自定义的行为,但不能在切入点处理完返回过程中执行拦截,也就没办法改变切入点的返回值.如果想 使用其他切入点进行拦截,可以查看org.springframework.aop包(Spring的通知API)下的其他类.
随后,我们可以编写几个需要被拦截的类,这里,我不再提供了,大家随便写个test类吧^_^.
最后,需要把拦截器注册到bean容器(applicationcontext.xml)内.并把要拦截的bean一起注入到自动代理bean定义 类org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator中.
例子如下:
<bean name ="logger"  class ="com.comwave.sc.form.ao010.test.SpringAOPInterceptor" method ="dispose"
<bean name = "loggingAutoProxy"
class ="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"
<property name = "beanNames"
    <value> userDAO</value> <!-- 在这里可以声明多个需要拦截的bean -->
</property>
<property name = "interceptorNames"
  <list>
  <value> logger</value> <!-- 同样,在这里可以声明多个拦截器,注意次序前后 -->
 </list>
</property>
</bean>

拦截器在spring中一般都是用来类似过滤器的功能,如日志处理、编码转换、权限检查等。以后仍会对spring的拦截器进行更加深入的研究。

 

  在struts -config.xml中配置

  1. <controller  
  2.  processorClass="org.springframework.web.struts .DelegatingRequestProcessor" >  
  3. </controller>  
 <controller
  processorClass="org.springframework.web.struts


.DelegatingRequestProcessor">
 </controller>

 新建AuthMethodInteceptor:

  1. import  java.util.Date;  
  2.   
  3. import  javax.servlet.http.HttpServletRequest;  
  4.   
  5. import  org.aopalliance.intercept.MethodInterceptor;  
  6. import  org.aopalliance.intercept.MethodInvocation;  
  7. import  org.apache.struts .action.ActionMapping;  
  8.   
  9. import  entity.Users;  
  10.   
  11. public   class  AuthMethodInterceptor  implements  MethodInterceptor {  
  12.   
  13.     public  Object invoke(MethodInvocation invocation)  throws  Throwable {  
  14.         Object[] object=invocation.getArguments();  
  15.         try   
  16.         {  
  17.             HttpServletRequest request = (HttpServletRequest) invocation.getArguments()[2 ];  
  18.             ActionMapping mapping=(ActionMapping) invocation.getArguments()[0 ];  
  19.             Users user = (Users) (request.getSession().getAttribute("user" ));  
  20.               
  21.             if (user== null )  
  22.             {  
  23.                  return  mapping.findForward( "login" );  
  24.           
  25.             }  
  26.             Object returnObject = invocation.proceed();  
  27.                         return  returnObject;  
  28.   
  29.         }  
  30.         catch (Exception e)  
  31.         {  
  32.               
  33.         }  
  34.           
  35.         return  object;  
  36.     }  

 

  • 大小: 26 KB
分享到:
评论

相关推荐

    Spring拦截器,高级参数绑定

    下面将详细探讨Spring拦截器的使用以及高级参数绑定和Controller返回值的相关知识。 首先,我们创建一个Spring拦截器需要实现HandlerInterceptor接口或继承HandlerInterceptorAdapter抽象类。以下是一个简单的拦截...

    Flex-Spring拦截器

    在深入研究Flex-Spring拦截器时,理解Spring AOP的核心概念和AMF的工作原理是至关重要的。通过这样的集成,开发者可以在保持Flex客户端的灵活性和交互性的同时,利用Spring的强大功能来处理复杂的业务逻辑和系统管理...

    spring拦截器的简单例子

    在这个简单的例子中,我们将探讨如何在 Spring 中配置和使用拦截器。 首先,我们需要创建一个自定义的拦截器类,该类需要实现 `HandlerInterceptor` 接口。这个接口提供了三个方法:`preHandle()`、`postHandle()` ...

    Spring拦截器示例

    而Spring拦截器则是实现AOP的一种方式,它类似于Java的Servlet过滤器,可以在方法调用前后执行自定义的操作。 AOP拦截器在Spring中主要通过`HandlerInterceptor`接口或者`@AspectJ`注解来实现。下面我们将详细探讨...

    Spring Controller拦截器配置

    ### Spring Controller拦截器配置 #### 一、概述 在Spring框架中,拦截器(Interceptor)是一种重要的机制,用于对Controller的请求进行预处理和后处理。它可以用来实现一系列的功能,如权限验证、日志记录、统一...

    spring配置JSON拦截器VIEW

    标题中的“spring配置JSON拦截器VIEW”指的是在Spring框架中设置JSON数据的处理方式,特别是通过拦截器(Interceptor)来优化视图层(View)的响应。在Web开发中,拦截器是一种常用的机制,用于在请求被实际处理之前...

    spring MVC(新增拦截器demo)

    在本次的“spring MVC(新增拦截器demo)”项目中,我们将重点探讨如何在Spring MVC中添加拦截器来实现对请求的预处理和后处理。 拦截器在Spring MVC中扮演着关键的角色,它们可以用来执行一些全局性的任务,如日志...

    spring boot 登录拦截器

    在Spring Boot应用中,登录拦截器是一个至关重要的组件,它用于保护特定的Web资源,确保只有经过身份验证的用户才能访问。Spring Boot结合了Spring MVC框架,提供了方便的方式来实现这样的拦截器。本篇文章将深入...

    Spring Boot 拦截器+kibana 配置.zip

    Spring Boot 拦截器 各项日志 通过kibana具体查询分析 Advanced Settings [7.2.0] 综合分析 定时任务执行日志 数据同步日志 用户访问操作日志 异常日志 内存日志 Spring逻辑参数执行日志 SQL...

    java + spring boot +jpa 拦截器分库分表demo

    在Spring Boot中注册拦截器,我们需要在配置类中使用`@EnableAspectJAutoProxy`开启AOP代理,并通过`@Bean`注解声明拦截器实例。然后,使用`@Around`注解定义切点,即拦截所有的JPA操作。 在实际开发中,为了使分库...

    自己spring boot 拦截器

    在Spring Boot应用中,拦截器(Interceptor)是Spring MVC框架的一部分,用于在请求处理之前、之后或在实际处理过程中执行一些预定义的任务。这通常包括权限检查、日志记录、性能监控等。自定义拦截器可以帮助我们更...

    spring拦截器的一个简单实例

    本文将深入探讨Spring拦截器的一个简单实例,通过源码分析和实际操作,帮助你理解其工作原理。 首先,我们需要了解Spring MVC的处理流程。当一个HTTP请求到达服务器时,Spring MVC会按照配置的DispatcherServlet...

    springboot spring aop 拦截器注解方式实现脱敏

    在Spring Boot应用中,Spring AOP(面向切面编程)是一种强大的工具,它允许我们创建横切关注点,如日志记录、权限检查等,这些关注点可以被编织到应用...同时,由于使用了注解,我们的拦截器配置变得更加简洁和灵活。

    SpringBoot拦截器原理解析及使用方法

    然后,要将拦截器加入到SpringBoot的配置中,需要使用WebMvcConfigurer接口的addInterceptors方法。具体配置代码如下: ```java import org.springframework.context.annotation.Configuration; import org.spring...

    spring mvc xml配置拦截器

    XML配置是Spring MVC早期版本中常见的配置方式,它允许开发者通过XML文件来定义组件、映射URL和设置拦截器等。在本篇文章中,我们将深入探讨如何在Spring MVC中使用XML配置来实现拦截器。 拦截器(Interceptor)在...

    struts2整合spring实现拦截器

    在本文中,我们将深入探讨如何实现Struts2与Spring的集成,以及利用拦截器来增强应用的功能。 首先,Struts2 是一个基于MVC设计模式的开源Web框架,它提供了强大的控制器层,使得开发者可以更方便地处理HTTP请求和...

    spring-boot 自定义xml配置web请求拦截器

    标题中的"spring-boot 自定义xml配置web请求拦截器"指的是在Spring Boot项目中,通过XML配置方式实现对Web请求的拦截处理。这涉及到Spring Boot的Web层架构、AOP(面向切面编程)以及自定义拦截器的概念。Spring ...

    CXF3.0+Spring3.2 自定义拦截器

    在提供的压缩包文件"wbInter"中,可能包含了一个示例或模板,用于演示如何在CXF3.0和Spring3.2环境中创建和配置自定义拦截器。通过学习和理解这些文件,你可以更深入地了解如何在实际项目中应用这一技术。 总之,...

    Spring MVC 拦截器

    ### Spring MVC 拦截器:深入理解与实践 #### 一、概念解析 Spring MVC 框架中的拦截器(Interceptor)是一种重要的组件,它主要用于处理请求与响应的生命周期,提供了一种灵活的方式来实现诸如权限检查、日志记录...

    SpringBoot整合Mybatis完整详细版含注册、登录、拦截器配置

    5. **拦截器配置** - **SpringBoot中的拦截器**:SpringBoot使用Spring MVC的Interceptor来实现请求拦截,它可以对请求进行预处理和后处理,比如权限验证、日志记录等。 - **配置拦截器**:在`WebMvcConfigurer`的...

Global site tag (gtag.js) - Google Analytics