spring aop 事务管理 监听不到对应方法
开发环境: tomcat6.0;jdk1.6;spring2.5.6;struts1.2.9;myeclipse;sqlserver2008;说明:没有使用接口注入.是使用类继承方式.
有一个抽象callvc基类,继承说Action类. 项目所有的业务相关类都必须继承Callvc类,实现Bm65Handle方法.
public abstract class Callvc extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
try {
Bm65Handle();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public abstract boolean Bm65Handle();
}
//spring配置
<bean id="dataDataSource"
class="com.common.dao.datasource.MultiProxoolDataSource">
<property name="driver">
<value>org.logicalcobwebs.proxool.ProxoolDriver</value>
</property>
<property name="configPath">
<value>/proxool.xml</value>
</property>
<property name="alias">
<value>TESTDB</value>
</property>
</bean>
<bean id="dataSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataDataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!-- 配置事务管理器 注意事务只监听业务数据session -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="dataSessionFactory" />
</property>
</bean>
<!-- 配置Advice(事务的传播特性) -->
<tx:advice id="txAdviceBiz" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="Bm65Handle" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- 配置事务管理器应用的范围 -->
<aop:config proxy-target-class="true">
<aop:pointcut id="affectMethodsBiz"
expression="execution(* com.common.business.*.*.*(..)) or execution(* com.common.winlnet.*.*(..))" />
<aop:advisor advice-ref="txAdviceBiz" pointcut-ref="affectMethodsBiz" />
</aop:config>
测试代码时发现事务没有管用,没有管理到Bm65Handle方法.但是我在spring配置里添加
<tx:method name="execute" propagation="REQUIRED" />spring的事务就管理到了execute方法,很奇怪!
有没有大神知道是怎么回事,这个问题困扰3天了!! spring aop 事务管理
补充:Java , Java EE