1. 程式人生 > >Spring aop:pointcut--expression--多個execution連線方法

Spring aop:pointcut--expression--多個execution連線方法

宣告式事務,多個execution連線方法: 

expression="execution(* pp.business.*.*(..)) or execution(* pp.business.impl.*.*(..))"

spring的幫助手冊裡有關於execution的連線方式的一句話:

Pointcut expressions can be combined using '&&', '||' and '!'.

但是我寫上&&就會報錯。很鬱悶。。。

||和or的作用相同:在符合* pp.business.*.*(..)和* pp.business.impl.*.*(..)方法上都加上事務性。

  1. <tx:adviceid="txAdvice"transaction-manager="transactionManager">
  2.         <tx:attributes>
  3.         <tx:methodname="add*"propagation="REQUIRED"/>
  4.         <tx:methodname="delete*"propagation="REQUIRED"/>
  5.         <tx:methodname="update*"propagation="REQUIRED"/>
  6.         <
    tx:methodname="insert*"propagation="REQUIRED"/>
  7.         <tx:methodname="*"read-only="true"/>
  8.     </tx:attributes>
  9. </tx:advice>
  10. <aop:configproxy-target-class="true">
  11.      <aop:pointcutid="allManagerMethod"expression="execution(* pp.business.*.*(..)) or execution(* pp.business.impl.*.*(..))"
    />
  12.      <aop:advisoradvice-ref="txAdvice"pointcut-ref="allManagerMethod"/>
  13. </aop:config>