`
zscomehuyue
  • 浏览: 412177 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring 2.0 AOP编程 方法拦截机 MethodInterceptor Demo

阅读更多
Spring 2.0 AOP编程 方法拦截机 MethodInterceptor Demo
2009-09-08 09:51

转帖:http://www.ziki.cn/blog/archives/1167792771.html

Spring 2.0 AOP编程 方法拦截机
1)书写方法拦截机 实现 org.aopalliance.intercept.MethodInterceptor
例如MethodInterceptorDemo.java

package dao.impl;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

public class MethodInterceptorDemo implements MethodInterceptor ,java.io.Serializable{
//如果你的方法被远程调用那么实现java.io.Serializable
private static final long serialVersionUID = 7701217096849783690L;

public Object invoke(MethodInvocation arg0) throws Throwable {
System.out.println("Before");
Object obj = (java.io.Serializable)arg0.proceed();//远程调用 否则会抛出Not Serializable
System.out.println("End");
return obj;
}

}

2)配置拦截applicationContext.xml

<!--  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Method Interceptor demo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->




<bean id="methodInterceptorDemo" class="dao.impl.MethodInterceptorDemo"/>

<bean id="methodPointcutDemo" class="org.springframework.aop.support.JdkRegexpMethodPointcut">
<property name="patterns">
<list>
<value>.*get</value>
<value>.*find</value>
</list>
</property>
</bean>


<bean id="methodAdvisorDemo" class="org.springframework.aop.support.DefaultPointcutAdvisor">
<property name="pointcut" ref="methodPointcutDemo"/>
<property name="advice" ref="methodInterceptorDemo"/>
</bean>

<bean id="methodAdvisorDemo1" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice" ref="methodInterceptorDemo" />
<property name="patterns">
<list>
<value>.*get</value>
<value>.*find</value>
</list>
</property>
</bean>

<bean id="genericDao" class="dao.impl.GenericDaoHibernateImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Interceptor genericDao method get/find~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<bean id="genericDao-proxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>dao.GenericDao</value>
</property>
<property name="target" ref="genericDao" />
<property name="interceptorNames">
<list>
<value>methodAdvisorDemo</value>        <!-- or --> <!--  <value>methodAdvisorDemo1</value> -->
</list>
</property>
</bean>   
<!--  ~~~~~~~~~~
分享到:
评论

相关推荐

    Spring使用AOP的三个jar包

    它定义了一些通用的AOP接口,比如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.MethodInvocation`,使得不同的AOP框架(如Spring和AspectJ)可以共享相同的拦截器(interceptors)。...

    spring-aop.jar各个版本

    spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-2.5.2.jar spring-aop-2.5.4.jar spring-aop-2.5.5.jar spring-aop-2.5.6.jar spring-aop-3.0.0.RELEASE.jar spring-aop-3.0.2.RELEASE.jar spring-aop-sources...

    SPRING2.0中文文档

    总结,这份中文版的Spring 2.0技术文档全面覆盖了Spring框架的主要特性和使用方法,是开发者深入学习和掌握Spring 2.0不可或缺的工具。通过阅读和实践文档中的示例,开发者可以更好地理解如何利用Spring 2.0解决实际...

    Spring 2.0 AOP 完整例子

    网上找了很多例子多数都不能运行。包括after,before,round,throw切入,可对类直接拦截,不需要定义接口文件,自己研究了2天整理出来的。 Spring AOP 的完整例子,可直接运行。带jar包。

    spring2.0中文手册及使用指南 chm

    Spring 2.0 是一个非常重要的Java框架,它在企业级应用开发中占据了核心地位,尤其是在基于Java的轻量级应用程序上下文(IoC)和面向切面编程(AOP)方面。本手册和使用指南提供了全面的Spring 2.0相关知识,包括其...

    Spring2.0宝典源代码

    1. **AOP(面向切面编程)增强**:Spring 2.0加强了对AOP的支持,允许开发者定义更复杂的切面,如注解驱动的切面,提供了更多的通知类型,如around、before、after等,使得代码更加模块化和可维护。 2. **注解驱动...

    Spring2.0中文教程

    Spring 2.0支持面向切面编程,允许开发者定义横切关注点,如日志、事务管理和安全性,作为可重用的模块。AOP通过切点(pointcut)和通知(advice)实现,使得代码更加模块化,降低了复杂性。 3. **IoC容器** ...

    spring2.0 中文教程

    2. **AOP(面向切面编程)**:Spring 2.0提供了更强大的面向切面编程支持,使得开发者可以将关注点分离,如日志、事务管理等,从而降低代码复杂性。AOP代理包括JDK动态代理和CGLIB代理,允许开发者定义切入点和通知...

    spring2.0 jar包

    Spring 2.0加强了AOP支持,允许开发者定义和执行横切关注点,如日志记录、事务管理等。@Aspect注解用于定义切面,@Before、@After、@Around等用于指定通知类型。此外,Spring还支持自定义注解作为切入点表达式,提高...

    springboot+aspect实现springaop拦截指定方法.zip

    综上所述,SpringBoot结合AspectJ实现SpringAOP拦截指定方法,主要涉及到Spring AOP的原理、切点和通知的定义、自定义注解的使用,以及如何在SpringBoot项目中整合AspectJ进行更复杂的切面编程。通过这些知识点,...

    Spring 2.0 源代码

    2. **AOP(面向切面编程)**:Spring 2.0提供了更强大的面向切面编程支持,允许开发者定义切面、通知(advisors)和切点(pointcuts),并将其应用于业务代码,实现如日志、事务管理等功能。切面可以是接口、类或...

    详尽的Spring2.0学习提纲

    Spring 2.0是Java开发中的一个里程碑,它在企业级应用开发中扮演着至关重要的角色,特别是对于依赖注入(IoC)和面向切面编程(AOP)的支持。本学习提纲旨在为初学者提供一份详尽的Spring 2.0学习指南,帮助他们系统...

    spring2.0中文参考手册.rar

    1. **AOP(面向切面编程)增强**:Spring 2.0 提供了更强大的面向切面编程支持,允许开发者定义更复杂的切面,包括基于注解的切点表达式和更多的通知类型。这使得代码更加整洁,业务逻辑与系统服务(如事务管理)...

    spring aop切面拦截指定类和方法实现流程日志跟踪

    本节将详细介绍如何使用Spring AOP实现流程日志跟踪,主要关注于如何通过AOP拦截特定的类和方法来进行日志记录。 ##### 3.1 配置Spring AOP 在Spring配置文件中定义切面和切入点表达式是非常关键的一步。一般来说...

    Spring Mvc AOP通过注解方式拦截controller等实现日志管理

    在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现跨切面的关注点,如日志管理。本教程将详细介绍如何利用注解来配置和使用AOP来拦截Controller层的方法,以便记录执行过程中的相关信息,实现日志...

    spring2.0学习源码

    在Spring 2.0中,最重要的更新之一是AOP(面向切面编程)的增强。这一版本引入了基于注解的AOP支持,使得开发者可以更直观地定义切面,无需编写XML配置。例如,@Before、@After、@Around等注解可以直接应用于方法上...

    spring2.0技术手册_源代码(全十章)

    其次,Spring 2.0强化了依赖注入(DI)和面向切面编程(AOP)的支持。DI是Spring的核心特性,通过源码,我们可以学习到如何定义bean的配置,如何使用`@Autowired`和`@Qualifier`注解实现自动装配,以及如何自定义...

    SPRING2.0开发详解

    Spring 2.0提供了更为强大的AOP支持,能够更方便地将这些关注点与业务逻辑分离。 - **声明式事务管理**:通过配置XML或注解(`@Transactional`)来管理事务边界,简化了复杂的事务代码。 - **自定义切面**:允许...

Global site tag (gtag.js) - Google Analytics