SpringAOP中args表达式如何使用-创新互联

SpringAOP中args表达式如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业新绛免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

一 配置

               

二 切面类

package org.crazyit.app.aspect;import org.aspectj.lang.annotation.*;import org.aspectj.lang.*;@Aspectpublic 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()方法

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。


本文题目:SpringAOP中args表达式如何使用-创新互联
文章源于:http://azwzsj.com/article/dihhoj.html