`
duooluu
  • 浏览: 59241 次
  • 性别: 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不会对父类方法做增强
分享到:
评论

相关推荐

    CGLib小练习题

    CGLib,全称为Code Generation Library,是一款Java平台上的代码生成库,主要用于运行时动态创建类的实例或者增强已有类的功能。它在Java世界里扮演着一个重要的角色,尤其是在AOP(面向切面编程)和ORM(对象关系...

    java_spring_day05.pdf

    - 当目标对象实现了一个或多个接口时,Spring会使用JDK动态代理;如果目标对象没有实现任何接口,则使用CGLIB动态代理。 3. **配置示例:** - 引入Spring AOP命名空间: ```xml &lt;!-- 定义切入点 --&gt; (* ...

    JAVASSH2整合

    2. **Spring**:Spring框架是一个轻量级的应用程序开发框架,主要功能包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect Oriented Programming, AOP)等,它能够简化企业级应用的开发过程。...

    深入学习Java 热部署的知识

    在Java开发中,热部署(Hot Deployment)是一个关键特性,它允许开发者在应用程序运行时更新代码,而无需停止和重新启动服务。这对于大型系统尤其重要,因为重启过程可能会浪费大量时间和资源。Java虚拟机(JVM)...

Global site tag (gtag.js) - Google Analytics