本文共 2788 字,大约阅读时间需要 9 分钟。
@Component()public class BakService { public void ZhuCe() { System.out.println("我要充钱"); }}—————————————————————————————设置处理类代码:这种是通知型的public class ChuLi { //切入的表达是 @Pointcut("execution(* my.sun.spring.LianXi..*.*(..))")//这个是引入所有 public void QieMethdf(){}//这个是个空方法为的是引入切入表达式 @Before("QieMethdf()") public void Method() { System.out.println("贪玩蓝月欢迎您"); } @After("QieMethdf()") public void Method1() { System.out.println("欢迎您伟大的RMB玩家"); }}
execution( modifier-pattern? //修饰符 ret-type-pattern //返回类型 declaring-type-pattern? //方法模式 name-pattern(param-pattern) //参数模式 throws-pattern? //异常模式)/*整个表达式可以分为五个部分: 1、execution(): 表达式主体。 2、第一个*号:表示返回类型,*号表示所有的类型。 3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.sample.service.impl包、子孙包下所有类的方法。 4、第二个*号:表示类名,*号表示所有的类。 5、*(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。*/@pointcut("execution(* com.sample.service.impl..*.*(..))")
@Component()//实现类public class BakService { public String ZhuCe(String url, String possword) { return url +possword; }}—————————————————————————————//处理类@Around("QieMethdf()") public Object around(ProceedingJoinPoint proceedingJoinPoint) { //如果需要返回值的话就需要就方法返回类型声明称Object不确定你的返回值是否是多个且类型一样 Object[] objects = proceedingJoinPoint.getArgs(); //拿到方法实现类的方法参数 //之所以用数据不确定你传进来的参数是多少个 System.out.println(Arrays.toString(objects)); System.out.println(proceedingJoinPoint.getTarget()); //拿到你实现类的执行对象 System.out.println("嘻嘻哈哈"); System.out.println(proceedingJoinPoint.getSignature()); //拿到你实现类的执行方法// objects[0]=objects[0]+"123";// objects[1]=objects[1]+"456";// proceedingJoinPoint.proceed();//注意这里有两个一个是返回原参数一个是修改完的参数 if (!objects[1].equals("哈哈")) { try { throw new MiErrorException(); } catch (MiErrorException e) { e.printStackTrace(); } } //之前可以加代码 try { return proceedingJoinPoint.proceed(); //执行实现类中的代码 //将代码中的值返回除去 } catch (Throwable throwable) { throwable.printStackTrace(); //这个异常是如果你的实现类出了错误,他就会在这报错 } //之后也可以加代码 System.out.println("滚粗"); return null; }//可以通过 System.out.println(bakService.getClass().getName()); 打印对象类名的方式来查看对象是否被监听
转载地址:http://feelo.baihongyu.com/