如何识别基于注释的配置事务详细信息?

时间:2012-07-24 11:44:42

标签: java spring hibernate annotations decompiling

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

我无法查看已配置的交易详情。

class A {

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

{

  // related stuff

}


public List<Student> getStudents()

{

  // related stuff

}


}

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

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

1 个答案:

答案 0 :(得分:0)

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

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

但是,只有在使用AspectJ编译时编织时才会这样。如果您正在使用其他一些机制 - Spring AOP或AspectJ加载时间编织,您将看不到增强的字节代码