`

spring 拦截器使用的例子

阅读更多
转自:http://blog.csdn.net/lemonfamily/article/details/1498246

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的拦截器进行更加深入的研究。


分享到:
评论

相关推荐

    spring拦截器的简单例子

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

    Spring MVC 拦截器入门例子

    在Spring Boot应用中,可以使用`@Configuration`和`@EnableWebMvc`注解,然后在类中使用`@Bean`注解声明拦截器: ```java @Configuration @EnableWebMvc public class WebConfig implements WebMvcConfigurer { @...

    spring MVC(新增拦截器demo)

    通过学习这个“spring MVC(新增拦截器demo)”项目,你不仅能够理解Spring MVC拦截器的基本使用,还能掌握如何将拦截器应用于实际的需求场景。拦截器的灵活运用可以大大提高代码的复用性和维护性,使得Spring MVC应用...

    spring boot 登录拦截器

    本篇文章将深入探讨如何使用Spring Boot、JPA连接数据库以及设置登录拦截器来拦截指定路径。 首先,我们需要理解Spring Boot中的JPA(Java Persistence API)是如何连接到数据库的。JPA是Java EE的一部分,提供了一...

    spring拦截器的简单例子.docx

    在这个简单的例子中,我们将深入理解如何配置和使用 Spring 的拦截器来实现特定的功能。 首先,我们有一个接口 `Purview`,其中包含一个方法 `logincheck()`。这个接口定义了需要被拦截的方法。接口的作用是提供一...

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

    在本案例中,我们将探讨如何使用注解来实现拦截器,用于数据脱敏,这是保护敏感信息的一种常见方法。数据脱敏是指在展示或传输数据时,将敏感信息替换或隐藏,以确保隐私。 首先,让我们从`pom.xml`文件开始。在...

    SpringMVC拦截器例子详解

    - 使用Java配置时,可以通过`@EnableWebMvc` 注解启用Web MVC配置,并在`WebMvcConfigurer` 实现类中重写`addInterceptors()` 方法来注册拦截器。 3. **自定义拦截器**: - 自定义拦截器需要继承`...

    spring-boot添加 拦截器

    本篇文章将详细探讨如何在Spring Boot中添加和使用拦截器来实现登录拦截。 首先,我们需要了解Spring Boot中的拦截器是如何工作的。在Spring MVC框架中,拦截器是基于AOP(面向切面编程)的概念实现的。我们可以...

    SpringMVCHibernate实例【含登录拦截器例子】

    登录拦截器是 Spring MVC 中的一个关键特性,用于在请求到达实际处理方法之前进行预处理,例如检查用户是否已经登录,确保只有经过授权的用户才能访问某些资源。 **Hibernate** Hibernate 是一个强大的对象关系映射...

    struts2+spring4+mybatis3,登录jquery ajax,struts拦截器,springAOP的例子

    本项目示例涵盖了这些框架的整合使用,以及jQuery AJAX登录、Struts拦截器和Spring AOP(面向切面编程)的应用。 1. **Struts2**:Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它简化了...

    springmvc(spring4版本)+自带登录和拦截器

    本项目是一个基于Spring 4的Spring MVC实现,内含登录功能和拦截器,可以直接运行,为开发者提供了一个快速开发的基础模板。 首先,让我们详细了解一下Spring MVC的核心概念: 1. **DispatcherServlet**:它是...

    java 拦截器例子

    下面我们将以Spring AOP为例,探讨如何创建和使用Java拦截器。 1. **理解Spring AOP** Spring AOP提供了一种声明式的方式来添加横切关注点,比如拦截器。它可以在不修改原始代码的情况下,通过配置或者注解来插入...

    spring MVC AOP注解方式如何拦截controller 例子

    在Spring中,我们可以使用AspectJ注解来声明切面,这些注解包括`@Aspect`、`@Before`、`@After`、`@Around`等,它们分别代表前置通知、后置通知、环绕通知等不同类型的拦截器。 1. **创建切面类** 首先,我们需要...

    WebMvcConfigurer拦截器的使用

    在上面的例子中,`myInterceptor`是我们自定义的拦截器,`addPathPatterns`用于指定需要拦截的URL模式,`excludePathPatterns`用于排除不需要拦截的URL。 **三、自定义拦截器的实现** 一个简单的自定义拦截器可能...

    struts拦截器jar 包

    在这个例子中,`saifLoginInterceptor`就是我们从`saif-0.1.jar`引入的一个拦截器,它会在执行`MyAction`之前检查用户是否已登录。 总结来说,"struts拦截器jar包"是指专门为Struts 1.x框架提供拦截器功能的第三方...

    mvc的拦截器控制权限的例子

    在这个例子中,我们将探讨如何使用拦截器实现权限控制。 首先,我们需要创建一个自定义的拦截器类,这个类需要实现Spring MVC的`HandlerInterceptor`接口。`HandlerInterceptor`接口包含三个方法:`preHandle`、`...

    Springboot拦截器进行拦截请求的一系列操作演示.docx

    在上述文档中,我们看到了一个简单的Spring Boot应用使用拦截器进行请求拦截的实例。 首先,我们需要了解拦截器的配置方式。在Spring Boot中,我们可以通过实现`WebMvcConfigurer`接口并重写`addInterceptors`方法...

    拦截器spring mvc

    拦截器spring mvc,非常经典,非常容易理解,结合例子。官方推荐

    Spring Security的例子

    2. **配置Security Context**:通过Java配置或XML配置,设置安全拦截器、认证管理器、访问决策管理器等组件。 3. **实现UserDetailsService**:创建一个类实现`UserDetailsService`,以加载用户信息。 4. **定义访问...

    SpringMVC拦截器

    5. 在 SpringMVC 的配置文件中注册拦截器,通常是在 `<mvc:interceptors>` 标签内使用 `<bean>` 标签定义拦截器,并在 `<mvc:mapping>` 中指定拦截的路径。 例如,一个简单的权限验证拦截器可能如下所示: ```java...

Global site tag (gtag.js) - Google Analytics