0

当我反编译一个类的源代码时,它在一个方法中使用了一个事务。

我看不到配置的交易详情。

class A {

@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public List<Object> getObjects()

{

  // related stuff

}


public List<Student> getStudents()

{

  // related stuff

}


}

现在,如果我反编译它,class A它不会给我任何提示来区分这两种方法。似乎两者都相同,但事实并非如此;一种是基于注释的方法,一种是没有注释的方法。

是否可以通过反编译来区分这些方法?

4

1 回答 1

0

是的,如果您使用 AspectJ 编译时编织,您应该能够在您的 @Transactional 类中看到编织事务相关的建议。例如。这就是我所看到的:

AnnotationTransactionAspect.aspectOf().ajc$before$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(this,

但是,这仅适用于您使用 AspectJ 编译时编织的情况。如果您使用其他一些机制 - Spring AOP 或 AspectJ 加载时间编织,您将看不到增强的字节码

于 2012-07-24T14:02:42.787 回答