在使用spring aop的时候碰到一个问题,在一个aop:config里面可以配多个切点表达式,在另外的aop:config里也是可以引用.配切面的时候,一个切面里面怎么不可以配多个通知,比如在记录日志的时候,有个logaspt类把它配置为切面,在这个切面里面配了一个前置的通知,是可以正常工作但是在配一个后置通知怎么就可以了,会出异常代码如下:
<!-- 日志aspectbean-->
<bean id="loggerBean" class="cn.hxex.springhibernate.base.LoggerBean"/>
<!-- 声明aop -->
<aop:config> <!-- 声明事务切点 -->
<aop:pointcut id="productServiceMethods"
expression="execution(* cn.hxex.springhibernate.service..*.*(..))"/>
<!--声明日志切点 -->
<aop:pointcut id="loggerCalls"
expression="execution(* cn.hxex.springhibernate..*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="productServiceMethods" />
<aop:aspect id="logAspect" ref="loggerBean"> <!--声明日志切面-->
<!--声明通知 -->
<aop:before pointcut-ref="loggerCalls" method="before"/>
<aop:after-returning pointcut-ref="loggerCalls" method="after"/>
</aop:aspect>
</aop:config>
难道一个切面不可以声明多个通知吗?
如果一个切面里不可以声明如一个前置或一个环绕的是一个理解的,怎么不可以声明一个前置和一个后置的?不解
知道了:切点表达式嵌套的太多了,把范围缩小就可以了