spring aop expression支持多个表达式配置

<!-- 配置那些类的方法进行事务管理 --> 
<aop:config> 
<aop:pointcut id="allServiceMethod" expression="execution (* com.cms.sys.service.*.*(..))" /> 
<aop:advisor advice-ref="txAdvice" pointcut-ref="allServiceMethod" /> 
</aop:config> 

还有一个 
execution (* com.cms.art.service.*.*(..))" 

要怎么写? 

 

 

可以这样写:将execution分开写。 
<aop:config> 
<aop:pointcut id="allServiceMethod" expression="(execution (* com.cms.sys.service.*.*(..))) or (execution (* com.cms.art.service.*.*(..)))" /> 
<aop:advisor advice-ref="txAdvice" pointcut-ref="allServiceMethod" /> 
</aop:config> 

老外喜欢吧逻辑运算符用or,and !写,国内一般用|| && !。 
参考E文详细的资料: 
[url=http://www.jboss.org/file-access/default/members/jbossaop/freezone/docs/2.0.0.GA/docs/aspect-framework/reference/en/html/annotated.html 
]http://www.jboss.org/file-access/default/members/jbossaop/freezone/docs/2.0.0.GA/docs/aspect-framework/reference/en/html/annotated.html[/url]http://www.jboss.org/file-access/default/members/jbossaop/freezone/docs/2.0.0.GA/docs/aspect-framework/reference/en/html/pointcuts.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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注解定义了后置通知方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值