当我反编译一个类的源代码时,它正在方法中使用事务。
我无法查看已配置的交易详情。
class A {
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public List<Object> getObjects()
{
// related stuff
}
public List<Student> getStudents()
{
// related stuff
}
}
现在,如果我反编译class A
,它将不会给我任何提示来区分这两种方法。它们似乎都是相同的,它们不是;一个是基于注释的方法,一个是没有注释的。
是否可以通过反编译区分这些方法?
答案 0 :(得分:0)
是的,如果您正在使用AspectJ编译时编织,您应该能够在@Transactional类中看到与编织事务相关的建议。例如。这就是我所看到的:
AnnotationTransactionAspect.aspectOf().ajc$before$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(this,
但是,只有在使用AspectJ编译时编织时才会这样。如果您正在使用其他一些机制 - Spring AOP或AspectJ加载时间编织,您将看不到增强的字节代码