微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring AOP中使用args表达式的方法示例

这篇文章主要介绍了Spring AOP中使用args表达式的方法,结合实例形式分析了spring面向切面AOP中使用args表达式具体步骤、相关实现技巧与操作注意事项,需要的朋友可以参考下

本文实例讲述了Spring AOP中使用args表达式的方法分享给大家供大家参考,具体如下:

一 配置

二 切面类

package org.crazyit.app.aspect; import org.aspectj.lang.annotation.*; import org.aspectj.lang.*; @Aspect public class AccessArgAspect { // 下面的args(arg0,arg1)会限制目标方法必须有2个形参 @AfterReturning(returning="rvt" , pointcut= "execution(* org.crazyit.app.service.impl.*.*(..)) && args(arg0,arg1)") // 此处指定arg0、arg1为String类型 // 则args(arg0,arg1)还要求目标方法的两个形参都是String类型 public void access(Object rvt, String arg0 , String arg1) { System.out.println("调用目标方法第1个参数为:" + arg0); System.out.println("调用目标方法第2个参数为:" + arg1); System.out.println("获取目标方法返回值:" + rvt); System.out.println("模拟记录日志功能..."); } }

三 接口

Hello

package org.crazyit.app.service; public interface Hello { // 定义一个简单方法,模拟应用中的业务逻辑方法 void foo(); // 定义一个addUser()方法,模拟应用中的添加用户方法 int addUser(String name, String pass); }

World

package org.crazyit.app.service; public interface World { // 定义一个简单方法,模拟应用中的业务逻辑方法 public void bar(); }

四 实现类

HelloImpl

package org.crazyit.app.service.impl; import org.springframework.stereotype.Component; import org.crazyit.app.service.*; @Component("hello") public class HelloImpl implements Hello { // 定义一个简单方法,模拟应用中的业务逻辑方法 public void foo() { System.out.println("执行Hello组件的foo()方法"); } // 定义一个addUser()方法,模拟应用中的添加用户方法 public int addUser(String name, String pass) { System.out.println("执行Hello组件的addUser添加用户:" + name); return 20; } }

WorldImpl

package org.crazyit.app.service.impl; import org.springframework.stereotype.Component; import org.crazyit.app.service.*; @Component("world") public class WorldImpl implements World { // 定义一个简单方法,模拟应用中的业务逻辑方法 public void bar() { System.out.println("执行World组件的bar()方法"); } }

五 测试类

package lee; import org.springframework.context.*; import org.springframework.context.support.*; import org.crazyit.app.service.*; public class BeanTest { public static void main(String[] args) { // 创建spring容器 ApplicationContext ctx = new ClasspathXmlApplicationContext("beans.xml"); Hello hello = ctx.getBean("hello" , Hello.class); hello.foo(); hello.addUser("孙悟空" , "7788"); World world = ctx.getBean("world" , World.class); world.bar(); } }

六 测试结果

执行Hello组件的foo()方法

执行Hello组件的addUser添加用户:孙悟空

调用目标方法第1个参数为:孙悟空

调用目标方法第2个参数为:7788

获取目标方法返回值:20

模拟记录日志功能...

执行World组件的bar()方法

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐