`
魔落凡尘
  • 浏览: 2537 次
社区版块
存档分类
最新评论

spring aop使用shema方式配置多参数的切入点的方式

阅读更多

<div class="iteye-blog-content-contain" style="font-size: 14px">

在学习到springaop的过程中,发现大部分的关于aop:before和aop:after的示例

都是无参或一个参数的,

比如:

    <aop:before method="before" pointcut="execution(* cn.xxxx..*.*(..))"/>    

<aop:before method="before" arg-names="param" pointcut="execution(* cn.xxxx..*.*(..)) and args(param)"/>  

 

但当想对多个参数的方法定义切入点和切面却少有示例,通过baidu也没有办法找到。

经过多次尝试,发现如下方式可正确的获取多参数方法的需要的参数。

通知方法代码:

public class DollarPayServiceImpl implements PayService{
	
	@Override
	public void pay(String str1,String str2) {
		System.out.println("say by dollar"+str1+str2);
	}
}

切入点代码:

public class LoggingUtils {
	
	public void logAfter(Object point,Object point2){
		System.out.println("--------------this is logAfter : "+point+point2+"------------");
	}
	
}

 切面定义:

<!-- 多个参数的切入及参数的获取,获取个数较少时使用args(..,str2) -->
<aop:after pointcut="execution(* com.dz.common.testAOP..*.pay(java.lang.String,java.lang.String)) and args(str1,str2)" 
    method="logAfter(java.lang.Object,java.lang.Object)" arg-names="str1,str2"/>

 如此所有的开发工作已经完成。

测试代码:

        @Autowired
	PayService payService;
	
	@Test
	public void test01(){
		payService.pay("s1", "s2");
	}

 结果如下:

say by dollars1s2
--------------this is logAfter : s1s2------------

 

</div>

 

1
2
分享到:
评论

相关推荐

    SpringAop xml方式配置通知

    **Spring AOP XML方式配置通知** 在Java世界中,Spring框架是广泛应用的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器。AOP允许开发者定义“方面”,这些方面可以封装关注点,如日志、事务...

    springAop默认代理方式.zip

    Spring AOP,全称Spring Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点,如日志、事务管理、性能监控等。在Spring AOP中,...

    springAop的配置实现

    Spring AOP通过XML配置文件提供了灵活的方式来定义和管理切面、切入点和通知,使得我们可以轻松地在应用程序中实现横切关注点的解耦。了解和掌握Spring AOP的配置实现,有助于提升我们构建松散耦合、易于维护的系统...

    使用Spring配置文件实现AOP

    在Spring框架中,面向切面编程(Aspect Oriented Programming,简称AOP)是一种强大的设计模式,它允许我们定义横切关注点,如日志、事务管理、权限检查等,然后将这些关注点与核心业务逻辑解耦。这篇教程将详细讲解...

    spring aop jar 包

    在使用Spring AOP时,我们可以通过XML配置或注解的方式来定义切面。例如,可以使用`@Aspect`注解定义一个切面类,`@Before`、`@After`等注解来声明通知,`@Pointcut`定义切点表达式。 在实际开发中,Spring AOP广泛...

    Spring AOP 16道面试题及答案.docx

    Spring支持两种AOP的实现方式:Spring AspectJ注解风格和Spring XML配置风格。使用AspectJ注解风格是最常见的,它允许开发者直接在方法上使用注解来定义切面。 Spring AOP中有五种不同类型的的通知(Advice): 1....

    Spring Aop使用实例

    总的来说,Spring AOP提供了一种灵活的方式,让我们可以在不侵入核心业务代码的情况下,添加和管理横切关注点,提高了代码的可复用性和可维护性。在实际开发中,合理地运用Spring AOP,可以显著提高项目的质量和开发...

    JavaEE Spring AOP使用

    2. **XML配置的AOP**:在传统的Spring配置中,我们需要在`&lt;aop:config&gt;`元素内定义切面、切入点和通知。虽然相比注解方式繁琐,但在某些情况下更具有灵活性。 压缩包中的`SpringAOPTest`可能包含了一个Spring AOP的...

    spring aop注解方式、xml方式示例

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种强大的方式来实现横切关注点,如日志、事务管理、性能监控等,而无需侵入业务代码。下面将详细介绍Spring AOP的注解方式和XML配置方式。 ### ...

    简单spring aop 例子

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...

    spring aop demo 两种实现方式

    本示例提供了一种通过注解和配置文件两种方式实现Spring AOP的方法。 首先,我们来详细讲解通过注解实现Spring AOP。在Spring中,我们可以使用`@Aspect`注解来定义一个切面,这个切面包含了多个通知(advice),即...

    Spring AOP实现机制

    Spring AOP的配置可以通过XML或注解方式进行: - **XML配置**: - 在`&lt;aop:config&gt;`标签内定义切面,`&lt;aop:pointcut&gt;`定义切入点,`&lt;aop:advisor&gt;`定义通知。 - `&lt;aop:aspect&gt;`标签用于定义完整的切面,包括切入...

    SpringAOP的注解配置

    Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是...在`myaop`项目中,你可以找到具体的示例代码,包括切面类、切入点表达式以及相应的注解使用,通过这些示例可以更深入地理解Spring AOP的注解配置。

    Spring AOP之基于Schema配置总结与案例

    这种方式需要在Spring配置文件中定义切入点表达式、通知类型以及通知的执行顺序。 1. **切入点表达式(Pointcut Expression)**: 切入点表达式是AOP的核心,它定义了哪些方法会被切面所影响。例如,`execution(* ...

    使用Spring aop需要配置的参数

    下面我们将详细探讨在Spring AOP中需要配置的相关参数及其作用。 1. **启用AOP代理** 要使用Spring AOP,首先需要在Spring配置文件或使用Java配置类中启用AOP代理。在XML配置中,这可以通过 `&lt;aop:config&gt;` 标签...

    使用Spring的注解方式实现AOP的细节

    在Spring框架中,面向切面编程(AOP)是一种强大的工具,它允许程序员定义横切关注点,如日志、事务管理、权限控制等,这些关注点可以被模块化并独立于业务逻辑进行处理。本篇文章将深入探讨如何通过Spring的注解...

    Spring AOP面向方面编程原理:AOP概念

    Spring AOP支持多种方式来定义切入点,包括但不限于方法名、类名、注解等。 5. **引入(Introduction)**:允许向被通知对象添加新的接口实现或者新的方法。例如,可以使用引入让任何对象实现`IsModified`接口,...

    Spring AOP完整例子

    总结一下,Spring AOP提供了一种优雅的方式来处理系统的横切关注点,如日志记录、事务管理或性能监控。通过定义切点、创建切面和配置通知,我们可以实现代码的解耦,提高可维护性和复用性。这个例子提供了学习Spring...

    springaop.zip

    Spring使用表达式语言(如XPath)来定义切入点。 4. **连接点(Join Point)**:程序执行中的一个点,如方法的调用或字段的赋值。切入点表达式匹配连接点,决定通知何时执行。 5. **代理(Proxy)**:Spring AOP...

Global site tag (gtag.js) - Google Analytics