我是SpringAOP的新手。我想寫一個簡單的例子介紹,但不能清楚地知道它是如何工作的。SpringAOP引入AspectJ
在文檔我發現:
我寫簡單的例子: 我寫簡單的類的一個方法
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;
}
我的Spring配置文件是這樣的:
<aop:aspectj-autoproxy/>
<bean id="aspect" class="by.bulgak.aspect.AspectClass" />
所以我的問題: 我哪有你現在這樣。我需要在我的主課中寫出什麼樣的海洋結果? 。 可能我需要寫一些其他類(本書中,我讀到SpringAOP我無法找到完整的例子)
UPDATE
我的主要方法是這樣的:
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");
讓我看看你的配置文件中的'Test' bean聲明。 –
@RohitJain' ' –
@RohitJain但項目工作正常II評論這兩行:'Test test =(Test)appContext.getBean(」test「); test.test1();' –