1. 程式人生 > >1分鐘讓你明白AOP是什麼及它的好處

1分鐘讓你明白AOP是什麼及它的好處

    大家應該明白一個道理,所有廣為人用的框架/技術等.基本都是兩個目的:

1.軟體開發期(寫程式碼,測試,上線)內,讓開發人員用更少的程式碼完成同樣的功能實現.

2.軟體上線後的維護升級器,讓讓開發人員用更少的程式碼完成同樣的功能實現.

    記住這兩條,然後我們來看看AOP到底是什麼,以及在什麼地方能夠讓我們少寫程式碼?

1.AOP是什麼?

面向切面程式設計,能夠讓我們在不影響原有功能的前提下,軟體橫向擴充套件功能 .

2.在什麼地方能夠讓我們少寫程式碼?

要回答問題2,首先解決"橫向"擴充套件什麼意思?

理解了這個詞基本就能理解AOP了.

軟體開發可分為"持久層" "業務層" 控制器層"

所謂的"橫向"就是指上面說到的三個層裡的任意一層!

 使用AOP技術後,用一個方法,就能同時作用與一個層面內所有方法!

上句話不容易理解,栗子來了!

寫日誌是一個很好的程式設計習慣,不用AOP技術的話,我們應該怎麼寫日誌?

  System.out.println("方法a開始執行");

 public void a(){

    System.out.println("我是一個方法");

}

 System.out.println("方法a執行成功");

上述是一個很簡單的日誌.兩行程式碼也不多.

可是在真實開發中,面對100個甚至1000個方法時,這樣寫你會不會被累死?

如果用AOP的話,我們用一個方法就可以搞定所有的日誌!

@Around("bean(*Service)")//指定要監控的bean中的方法
public Object testObject(ProceedingJoinPoint jp) throws Throwable{ //引數的意思是代理執行原軟體中的方法
System.out.println(jp.getSignature()+"開始執行"); //在方法執行之前執行


Object val = jp.proceed();
System.out.println(jp.getSignature()+"執行成功");//在方法執行之後執行
return val;
}

OK!,搞定.現在所有業務層的方法執行前後都會打出日誌了!.

一個方法搞定了需要機械重複的複製貼上幾百行的工作!世界美好了.

本文目的是簡單說明使用AOP如何能幫助我們少寫程式碼,具體如何使用請看下一篇.

http://blog.csdn.net/qq_35360135/article/details/79080502