作為這個介紹SPRing框架中的面向方面編程(aspect-Oriented Programming,AOP)的系列的第一部分,本文介紹了使您可以使用Spring中的面向方面特性進行快速開發(fā)的基礎(chǔ)知識。使用跟蹤和記錄方面(面向方面領(lǐng)域的HelloWorld)作為例子,本文展示了如何使用Spring框架所獨有的特性來聲明切入點和通知以便應(yīng)用方面。本系列的第二部分將更深入地介紹如何運用Spring中的所有通知類型和切入點來實現(xiàn)更實用的方面和面向方面設(shè)計模式。對于AOP的更一般性的介紹,請查看ONjava站點上Graham O'Regan的文章,“IntrodUCtion to Aspect-Oriented Programming”。
本文的目的不是要介紹構(gòu)成模塊化J2EE系統(tǒng)――即Spring框架――的所有重要元素,我們將只把注重力放在Spring所提供的AOP功能上。由于Spring的模塊化設(shè)計方法,我們可以只使用該框架的AOP元素,而無需對構(gòu)成Spring框架的其他模塊做太多考慮。
在AOP方面,Spring提供了什么?
“它的目標(biāo)不是提供最完善的AOP實現(xiàn)(雖然Spring AOP非常強大);而是要提供AOP實現(xiàn)與Spring IoC的緊密集成,以便幫助解決企業(yè)應(yīng)用中的常見問題。”
Spring Framework參考文檔
為了實現(xiàn)這個目標(biāo),Spring框架目前支持一組AOP概念,從切入點到通知。本文將展示如何使用Spring框架中所實現(xiàn)的如下AOP概念:
通知(Advice):如何將before通知、afterReturning通知和afterThrowing通知聲明為bean。
切入點(Pointcut):如何聲明靜態(tài)切入點邏輯以將xml Spring Bean Configuration文件中的所有內(nèi)容聯(lián)系在一起。
Advisor:關(guān)聯(lián)切入點定義與通知bean的方式。
設(shè)置場景:一個簡單的例子應(yīng)用程序
“一般而言,Spring并不是預(yù)描述的。雖然使用好的實踐非常輕易,但是它避免強制推行一種特定的方法。”
Spring Framework參考文檔
要試用Spring框架的AOP功能,首先我們要創(chuàng)建一個簡單的Java應(yīng)用程序。IbusinessLogic接口和BusinessLogic類為Spring框架中的bean提供了簡易構(gòu)件塊。雖然該接口對于我們的簡單應(yīng)用程序邏輯來說不是必需的,但是它是Spring框架所推薦的良好實踐。
public interface IBusinessLogic
{
public void foo();
}
public class BusinessLogic
implements IBusinessLogic
{
public void foo()
{
System.out.println(
"Inside BusinessLogic.foo()");
}
}
可以編寫Mainapplication類,借此練習(xí)BusinessLogic bean的公有方法。
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class MainApplication
{
public static void main(String [] args)
{
// Read the configuration file
ApplicationContext ctx =
new FileSystemXmlApplicationContext(
"springconfig.xml");
//Instantiate an object
IBusinessLogic testObject =
(IBusinessLogic) ctx.getBean("businesslogicbean");
新聞熱點
疑難解答