0

メソッドでトランザクションを使用しているクラスのソース コードを逆コンパイルするとき。

構成されたトランザクションの詳細を表示できません。

class A {

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

{

  // related stuff

}


public List<Student> getStudents()

{

  // related stuff

}


}

を逆コンパイルしclass Aても、これら 2 つの方法を区別するためのヒントは得られません。どちらも同じようですが、そうではありません。1 つは注釈ベースの方法で、もう 1 つは注釈なしの方法です。

逆コンパイルによってこれらの方法を区別することは可能ですか?

4

1 に答える 1

0

はい、AspectJコンパイル時ウィービングを使用している場合は、@Transactionalクラスでウィービングされたトランザクション関連のアドバイスを確認できるはずです。たとえば。これは私が見るものです:

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

ただし、これはAspectJコンパイル時ウィービングを使用している場合のみです。他のメカニズムを使用している場合-SpringAOPまたはAspectJのロード時間ウィービングでは、バイトコードが拡張されていることはわかりません。

于 2012-07-24T14:02:42.787 に答える