Spring的AOP配置文件中pointcut的execution表达式

1. 权限修饰符和返回类型:

  • 在切点表达式中,可以省略权限修饰符(如public),这表示不限定方法的访问权限。
  • 使用*作为返回类型表示匹配任意返回类型的方法。

2. 包和类的匹配:

  • * com.qf.service.*.*Impl.*();:这个表达式匹配com.qf.service包下任意直接子包中,类名以Impl结尾的类的任意方法。这里的*代表直接子包的名称,不包括com.qf.service包本身或更深层次的子包。
  • * com.qf.service..*Impl.*();:与上面的表达式相比,这里使用了两个点..,表示匹配com.qf.service包及其任意层级的子包中,类名以Impl结尾的类的任意方法。这种方式不限制包的层级深度,既包括com.qf.service包本身,也包括所有子包。

3. 方法的匹配:

  • .*();表示匹配类中的任意方法,()表示方法可以没有参数。使用(..)则表示匹配任意参数列表的方法。
Spring AOP配置文件主要有两种方式:基于XML配置和基于注解配置。 基于XML配置的方式需要在Spring配置文件引入aop的命名空间,并通过<aop:config>元素来定义切面和通知。具体配置如下: 1. 引入aop的命名空间: ```xml xmlns:aop="http://www.springframework.org/schema/aop" ``` 2. 在<aop:config>定义切面和通知: ```xml <aop:config> <aop:aspect id="myAspect" ref="myAspectBean"> <aop:pointcut expression="execution(* com.example.MyClass.myMethod(..))" id="myPointcut" /> <aop:before method="beforeAdvice" pointcut-ref="myPointcut" /> <aop:after method="afterAdvice" pointcut-ref="myPointcut" /> </aop:aspect> </aop:config> ``` 其,id为"myAspect"的元素定义了切面,ref属性指定了切面所对应的Bean。expression属性指定了切点表达式pointcut-ref属性指定了切点,method属性指定了通知方法。 基于注解配置的方式需要在Spring配置文件开启注解支持,并在切面类上使用相应的注解进行配置。具体配置如下: 1. 开启注解支持: ```xml <context:annotation-config /> <aop:aspectj-autoproxy /> ``` 2. 在切面类上使用注解进行配置: ```java @Aspect @Component public class MyAspect { @Pointcut("execution(* com.example.MyClass.myMethod(..))") public void myPointcut() {} @Before("myPointcut()") public void beforeAdvice() { // 前置通知的逻辑 } @After("myPointcut()") public void afterAdvice() { // 后置通知的逻辑 } } ``` 其,@Aspect注解标识该类为切面,@Component注解将该类作为Spring的Bean进行管理。@Pointcut注解定义了切点,@Before注解定义了前置通知方法,@After注解定义了后置通知方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值