私はSpringAOPが初めてです。イントロダクションの簡単な例を書きたいのですが、どのように動作する必要があるのか 明確に理解できません。
ドキュメントでは、次のことがわかりました。
そして、簡単な例を書きます: 1つのメソッドで簡単なクラスを書きます
public class Test {
public void test1(){
System.out.println("Test1");
}
}
次に、このインターフェースを実装するインターフェースとクラスを作成します
public interface ITest2 {
void test2();
}
public class Test2Impl implements ITest2{
@Override
public void test2() {
System.out.println("Test2");
}
}
そして最後に私の側面
@Aspect
public class AspectClass {
@DeclareParents(
value = "by.bulgak.test.Test+",
defaultImpl = Test2Impl.class
)
public static ITest2 test2;
}
私の春の設定ファイルは次のようになります:
<aop:aspectj-autoproxy/>
<bean id="aspect" class="by.bulgak.aspect.AspectClass" />
だから私の質問:どうすれば今これをできますか。海の結果を得るためにメインクラスに何を書く必要がありますか? 他のクラスを書く必要があるかもしれません.(SpringAOPについて読んだ本では完全な例が見つかりません)
アップデート
私の主な方法は次のようになります。
public static void main(String[] args) {
ApplicationContext appContext = new ClassPathXmlApplicationContext("spring-configuration.xml");
Test test = (Test) appContext.getBean("test");
test.test1();
ITest2 test2 = (ITest2) appContext.getBean("test");
test2.test2();
}
アプリを実行すると、次のエラーが発生します。
Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy5 cannot be cast to by.bulgak.test.Test
この行で:
Test test = (Test) appContext.getBean("test");