日期:2014-05-19  浏览次数:20634 次

问个spring aop 配置的问题
如题  

spring aop 配置问题 

1、第一种如下


<context:annotation-config />
<context:component-scan base-package="com.xx"/>

<bean id="xx1" class="com.xx.LogInterceptor"></bean>
<aop:config>
<aop:point-cut id="xx2"  execution(public * com.xx.service..*.add(..))" />

<aop:aspect id="xx3" ref="xx1">
    <aop:before method="before" point-ref="xx2"/>
</aop:aspect>
</aop:config>


这时,我们把xx1类的方法 before加到了  add之前  对吧

然后看 这种方式

2、


<context:annotation-config />
<context:component-scan base-package="com.xx"/>

<bean id="xx1" class="com.xx.LogInterceptor"></bean>
<aop:config>
<aop:point-cut id="xx2"  execution(public * com.xx.service..*.add(..))" />

<aop:advisor pointcut-ref="xx2"  advice-ref="txAdvice" />
        </aop:config>

<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="getUser" read-only="true" />
<tx:method name="add*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>

<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

sessionfactory配置此处略



问题是,我现在 在2中 怎么 加上1中的 before、方法呢 ??







------解决方案--------------------
还可以照样加 不过这个类需要继承Interceptor  到时候会首先执行before配置的方法
------解决方案--------------------
AOP跟你事务的配置并不冲突吧。