`
duooluu
  • 浏览: 58394 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Spring采用CGLIB增强时要注意的一个问题

阅读更多
代码如下

public interface IXService{
	public void doAdd();
}


抽象类
public abstract class AbstractXService{
	public void doAdd(){
		//do something
		innerMethod();
	}

	protected abstract void innerMethod();
}

具体实现
public class DXService{
	protected void innerMethod(){...}
}


事务配置,采用cglib来增强
<aop:config proxy-target-class="true">
	<aop:advisor pointcut="execution(* DXService.*(..))" advice-ref="txAdvice"/>
</aop:config>
<tx:advice id="txAdvice">
	<tx:attributes>
	<tx:method name="doAdd" propagation="REQUIRED" rollback-for="java.lang.Throwable"/>
	</tx:attributes>
</tx:advice>


期望是在doAdd方法上加事务管理,但实际调用的时候doAdd上并没有事务管理。原因是cglib不会对父类方法做增强
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics