まず、xml 構成を試します。
<aop:aspect>
<aop:declare-parents types-matching="DBOperations.ILearningData+"
implement-interface="DBOperations.ISaveResults"
delegate-ref="saverExtension"/>
</aop:aspect>
そしてそれはうまくいきます。
今、私は同じことをするはずのaspectjを作ろうとします:
public aspect ASaveResults {
public ASaveResults() { }
declare parents : TSaveResults implements ILearningData;
}
ここで、TSaveResults は Bean「saverExtension」と同じです。
私は自分のコードを実行します:
...
@Value("#{learningData}")
protected ILearningData saver;
...
((ISaveResults)saver).saveResults();
そしてエラーを取得します:
スレッド「AWT-EventQueue-0」の例外 java.lang.ClassCastException: sun.proxy.$Proxy12 は DBOperations.ISaveResults にキャストできません
私のアスペクトの問題は何ですか?
また、このコードを試してみましたが失敗しました:
public aspect ASaveResults {
public ASaveResults() { }
declare parents : ISaveResults implements ILearningData;
public void saveResults() {
System.out.println("saver aspect");
}
}