`
498320858
  • 浏览: 393130 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

sping拦截器(监视模式)

阅读更多
spring 拦截器的实现

spring 2009-09-14 11:00:02 阅读1065 评论0   字号:大中小 订阅

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.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的拦截器进行更加深入的研究。
分享到:
评论

相关推荐

    Spring拦截器,高级参数绑定

    在Spring框架中,拦截器(Interceptor)是一种强大的工具,它允许开发者在请求处理前后执行自定义逻辑,例如日志记录、权限检查等。Spring MVC中的拦截器是基于AOP(面向切面编程)原理实现的,可以理解为对...

    Flex-Spring拦截器

    Spring AOP通过代理模式实现,可以创建JDK动态代理或CGLIB代理来拦截方法调用。 Flex-Spring 框架结合了 Adobe Flex 的客户端技术与 Spring 的服务器端能力,使得在 Flex 客户端与 Spring 服务之间能够透明地进行...

    spring拦截器的简单例子

    Spring 拦截器是 Spring 框架中一个非常重要的组件,主要用于处理请求和响应,实现业务逻辑之前和之后的预处理和后处理。它为开发者提供了在 MVC 模式下实现统一处理机制的机会,比如权限验证、日志记录、性能监控等...

    Spring拦截器示例

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

    spring MVC(新增拦截器demo)

    4. **配置拦截路径**:在`addPathPatterns`方法中,我们可以指定拦截器应该拦截哪些URL模式。例如,`"/**"` 表示拦截所有请求,而 `/admin/**` 只会拦截以`/admin/`开头的URL。 5. **实战示例**:在“springMVC”...

    spring boot 登录拦截器

    在这个例子中,`YourLoginInterceptor`是你自定义的登录拦截器类,`addPathPatterns`指定了需要拦截的URL模式,而`excludePathPatterns`则排除了不需要拦截的URL。 总结起来,Spring Boot结合JPA提供了强大的数据库...

    使用CGLIB模拟spring的拦截器

    而拦截器则是Spring框架中的一个重要概念,它允许我们在方法执行前后进行一些额外的操作,比如日志记录、性能监控、事务管理等。在本教程中,我们将深入探讨如何使用CGLIB库来模拟Spring的拦截器功能。 CGLIB(Code...

    自己spring boot 拦截器

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

    spring拦截器的一个简单实例

    在Spring框架中,拦截器(Interceptor)是一种非常重要的组件,它允许我们在方法调用前后执行自定义逻辑,比如权限检查、日志记录等。本文将深入探讨Spring拦截器的一个简单实例,通过源码分析和实际操作,帮助你...

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

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

    spring配置JSON拦截器VIEW

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

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

    这将设置Spring Web相关类的日志级别为DEBUG,以便我们能看到拦截器的执行过程。 启动类通常会包含`@SpringBootApplication`注解,该注解包含了`@EnableAutoConfiguration`,`@ComponentScan`和`@...

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

    3. **Spring集成**:在Spring3.2中,我们可以使用`<cxf:bus>`和`<cxf:interceptor>`标签将自定义拦截器注册到CXF Bus中。这样,Spring容器会管理拦截器的生命周期,并在需要时注入其他依赖。 4. **拦截器链**:CXF...

    struts2整合spring实现拦截器

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

    Spring MVC 拦截器

    在Spring MVC中,拦截器接口由`HandlerInterceptor`定义,而`HandlerInterceptorAdapter`类则提供了一个适配器模式的默认实现,简化了拦截器的开发过程。`HandlerInterceptor`接口包含以下三个核心方法: 1. **`...

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

    在SpringBoot框架中,拦截器是一个非常重要的组件,它能够在请求到达控制器(Controller)之前或者之后对请求进行拦截,以完成一些预处理或后处理操作。拦截器通常用于权限检查、日志记录、性能监控等场景。 拦截器...

    spring-boot添加 拦截器

    在这个配置中,我们指定了拦截器应用的URL模式,`/admin/**`表示所有以`/admin/`开头的URL都会被`LoginInterceptor`拦截。同时,我们也排除了`/login`和`/logout`这两个URL,以免出现登录和登出时的死循环。 至此,...

    Spring Cloud OpenFeign - - - >拦截器

    初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混,误以为OpenFeign拦截器就是SpringMVC拦截器:Spring MVC拦截器发生在客户端 和 服务端之间,在客户端向服务端发送请求时进行拦截处理。...

    Spring Boot Aspect 切面 AOP 拦截器 Interceptor 监控control请求耗时

    在Spring Boot应用中,面向切面编程(AOP)是一种强大的设计模式,它允许我们以声明式的方式插入代码,比如日志记录、事务管理或权限检查。Aspect是AOP的核心概念,它封装了关注点,使得我们可以将这些关注点与业务...

    SpringMvc 拦截器

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复编写...

Global site tag (gtag.js) - Google Analytics