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