国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Spring Framework中的面向方面編程

2019-11-18 15:38:37
字體:
供稿:網(wǎng)友

  作為這個介紹SPRing框架中的面向方面編程(aspect-Oriented Programming,AOP)的系列的第一部分,本文介紹了使您可以使用Spring中的面向方面特性進(jìn)行快速開發(fā)的基礎(chǔ)知識。
使用跟蹤和記錄方面(面向方面領(lǐng)域的HelloWorld)作為例子,本文展示了如何使用Spring框架所獨(dú)有的特性來聲明切入點(diǎn)和通知以便應(yīng)用方面。本系列的第二部分將更深入地介紹如何運(yùn)用Spring中的所有通知類型和切入點(diǎn)來實現(xiàn)更實用的方面和面向方面設(shè)計模式。對于AOP的更一般性的介紹,請查看ONjava站點(diǎn)上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非常強(qiáng)大);而是要提供AOP實現(xiàn)與Spring IoC的緊密集成,以便幫助解決企業(yè)應(yīng)用中的常見問題。”

  Spring Framework參考文檔

  為了實現(xiàn)這個目標(biāo),Spring框架目前支持一組AOP概念,從切入點(diǎn)到通知。本文將展示如何使用Spring框架中所實現(xiàn)的如下AOP概念:

  通知(Advice):如何將before通知、afterReturning通知和afterThrowing通知聲明為bean。

  切入點(diǎn)(Pointcut):如何聲明靜態(tài)切入點(diǎn)邏輯以將xml Spring Bean Configuration文件中的所有內(nèi)容聯(lián)系在一起。

  Advisor:關(guān)聯(lián)切入點(diǎn)定義與通知bean的方式。

  設(shè)置場景:一個簡單的例子應(yīng)用程序

  “一般而言,Spring并不是預(yù)描述的。雖然使用好的實踐非常輕易,但是它避免強(qiáng)制推行一種特定的方法。”

  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");

  // Execute the public
  // method of the bean
  testObject.foo();
 }
}
  在BusinessLogic類及其關(guān)聯(lián)接口中沒有什么需要注重的。但是,MainApplication類初始化BusinessLogic對象的方式很有意思。通過使用ctx.getBean("businesslogicbean")調(diào)用,MainApplication將加載和治理BusinessLogic類的bean實例的任務(wù)轉(zhuǎn)交給了Spring框架。

  答應(yīng)Spring控制BusinessLogic bean的初始化,這使得Spring運(yùn)行時有機(jī)會在bean被返回給應(yīng)用程序之前執(zhí)行J2EE系統(tǒng)所需的所有與bean相關(guān)的治理任務(wù)。然后Spring運(yùn)行時配置可以決定對bean應(yīng)用哪些任務(wù)和模塊。該配置信息由一個XML文件提供,類似于下面所示的:



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 瓦房店市| 黎城县| 平阴县| 太谷县| 阳东县| 深水埗区| 平潭县| 布拖县| 赤壁市| 张掖市| 新疆| 澎湖县| 乃东县| 遂宁市| 湘阴县| 饶河县| 安新县| 文水县| 白朗县| 茂名市| 灌南县| 罗定市| 藁城市| 姚安县| 平陆县| 抚远县| 成武县| 牡丹江市| 稻城县| 八宿县| 定南县| 紫金县| 利辛县| 济宁市| 克拉玛依市| 临湘市| 东方市| 那曲县| 元阳县| 千阳县| 东方市|