下列JSP表达式的写法正确的是,Spring框架----切入点表达式的写法

 2023-09-28 阅读 30 评论 0

摘要:上一节我们实现了Spring的基于XML的AOP。 Spring的基于 XML的AOP的实现 我们将测试一下上一节的代码执行结果 /*测试aop的配置*/ public class AOPTest {public static void main(String[] args) {//1.获取容器ApplicationContext ac=new ClassPathXmlApplicationContext(

上一节我们实现了Spring的基于XML的AOP。
Spring的基于 XML的AOP的实现
我们将测试一下上一节的代码执行结果

/*测试aop的配置*/
public class AOPTest {public static void main(String[] args) {//1.获取容器ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");//2.获取对象IAccountService as=(IAccountService)ac.getBean("accountService");//3.执行方法as.saveAccount();as.updateAccount(1);
as.deleteAccount();}
}

在这里插入图片描述
只有保存输出了,其他都没有输出,原因就是切入点表达式配置死了,就是保存,但是通常情况下我们是会对业务层所有方法进行增强,但不是每个方法都写一遍。

切入点表达式的写法

关键字:execution(表达式)
表达式:访问修饰符 返回值 包名.包名....类名.方法名(参数列表)
标准表达式写法
public void com.yujie.service.impl.AccountServiceImpl.saveAccount();
我们的切入点表达式明确的说明了这个方法要对哪个方法进行增强。
访问修饰符可以省略
void com.yujie.service.impl.AccountServiceImpl.saveAccount();
返回值可以使用通配符表示任意返回值,即void可以改为*
包名可以使用通配符来表示任意包,但是有几级包就需要写几个*,比如有4个包,就写*.*.*.*.
包名可以使用..表示当前包及其子包
* *..AccountServiceImpl.saveAccount()表示任意包下的只要有一个AccountServiceImpl类都会被增强
类名和方法名都可以使用*来实现通配。
如果写成这样* *..*.*(),也只会有两个方法被执行。因为有一个方法有参数。
参数列表
可以直接写数据类型:
基本类型直接写名称               int引用类型写包名.类名的方式          java.lang.String
可以使用通配符表示任意类型,但是必须有参数* *..*.*(*)
当我们把参数写成..表示参数有无都可以,即真正的全通配写法
全通配写法
* *..*.*(..)
实际开发中切入点表达式的通常写法
切到业务层实现类的所有方法* com.yujie.service.impl.*.*(..)
<!--配置通知的类型,并且建立通知方法--><aop:before method="printLog" pointcut="execution(* *..*.*())"></aop:before>

下列JSP表达式的写法正确的是?在这里插入图片描述

<!--配置通知的类型,并且建立通知方法--><aop:before method="printLog" pointcut="execution(* *..*.*(int))"></aop:before>

在这里插入图片描述

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

在这里插入图片描述

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

lambda表达式的写法,在这里插入图片描述
在实际开发中,最好不要写成这种全通配的方式,否则你程序在执行的时候所有类的方法都满足于这个条件,增强代码就都执行了一遍,这样肯定不是我们所需要的。

实际开发中切入点表达式的通常写法
切到业务层实现类的所有方法* com.yujie.service.impl.*.*(..)

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/101705.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息