1. 程式人生 > 其它 >AOP-aspectJ實現異常通知

AOP-aspectJ實現異常通知

技術標籤:ssmaop

異常通知類

public class MyThrowAdvice {
	public void MyThrow(Exception e) {
		System.out.println("throw Exception"+e.getMessage());
	}
}

Demo類

在Demo1方法中寫了個5/0,讓它報異常

public class Demo {
	public void Demo1(){
		int i=5/0;
		System.out.println("demo1");
	}
	public void Demo2
(){ System.out.println("demo2"); } public void Demo3(){ System.out.println("demo3"); } }

application.xml部分程式碼

  • 異常只能用aspectJ方式實現
  • 需要在aspect標籤裡邊寫
  • 和schema-based一樣,有切點標籤、切點標籤的類、通知標籤、然後ref引入通知標籤的bean
<bean id="mythrow" class="cn.wit.advice.MyThrowAdvice">
</bean> <aop:config> <aop:aspect ref="mythrow"> <aop:pointcut expression="execution(* cn.wit.test.Demo.Demo1())" id="mypoint"/> <aop:after-throwing method="MyThrow" pointcut-ref="mypoint" throwing="e"/>
</aop:aspect> </aop:config> <bean id="demo" class="cn.wit.test.Demo"></bean>

測試

	public class Test {
		public static void main(String[] args) {
			ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
			Demo demo = ac.getBean("demo",Demo.class);
			try {
				demo.Demo1();
			} catch (Exception e) {
			} 
		}
}

在這裡插入圖片描述