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

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

Spring Framework中的AOP編程之入門篇

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

  作為這個(gè)介紹SPRing框架中的面向方面編程(aspect-Oriented Programming,AOP)的系列的第一部分,本文介紹了使您可以使用Spring中的面向方面特性進(jìn)行快速開發(fā)的基礎(chǔ)知識(shí)。
使用跟蹤和記錄方面(面向方面領(lǐng)域的HelloWorld)作為例子,本文展示了如何使用Spring框架所獨(dú)有的特性來聲明切入點(diǎn)和通知以便應(yīng)用方面。本系列的第二部分將更深入地介紹如何運(yùn)用Spring中的所有通知類型和切入點(diǎn)來實(shí)現(xiàn)更實(shí)用的方面和面向方面設(shè)計(jì)模式。

  本文的目的不是要介紹構(gòu)成模塊化J2EE系統(tǒng)——即Spring框架——的所有重要元素,我們將只把注重力放在Spring所提供的AOP功能上。由于Spring的模塊化設(shè)計(jì)方法,我們可以只使用該框架的AOP元素,而無需對(duì)構(gòu)成Spring框架的其他模塊做太多考慮。

  在AOP方面,Spring提供了什么?

  “它的目標(biāo)不是提供最完善的AOP實(shí)現(xiàn)(雖然Spring AOP非常強(qiáng)大);而是要提供AOP實(shí)現(xiàn)與Spring IoC的緊密集成,以便幫助解決企業(yè)應(yīng)用中的常見問題。”

  Spring Framework參考文檔

  為了實(shí)現(xiàn)這個(gè)目標(biāo),Spring框架目前支持一組AOP概念,從切入點(diǎn)到通知。本文將展示如何使用Spring框架中所實(shí)現(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è)置場(chǎng)景:一個(gè)簡(jiǎn)單的例子應(yīng)用程序

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

  要試用Spring框架的AOP功能,首先我們要?jiǎng)?chuàng)建一個(gè)簡(jiǎn)單的java應(yīng)用程序。IbusinessLogic接口和BusinessLogic類為Spring框架中的bean提供了簡(jiǎn)易構(gòu)件塊。雖然該接口對(duì)于我們的簡(jiǎn)單應(yīng)用程序邏輯來說不是必需的,但是它是Spring框架所推薦的良好實(shí)踐。

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對(duì)象的方式很有意思。通過使用ctx.getBean("businesslogicbean")調(diào)用,MainApplication將加載和治理BusinessLogic類的bean實(shí)例的任務(wù)轉(zhuǎn)交給了Spring框架。

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



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 揭西县| 海门市| 兴安盟| 保康县| 遂昌县| 怀来县| 青冈县| 岳池县| 萨迦县| 平舆县| 乌苏市| 天门市| 旬阳县| 喀喇沁旗| 佳木斯市| 深圳市| 澳门| 集安市| 潼关县| 吴忠市| 高雄市| 隆德县| 河西区| 黄平县| 建宁县| 章丘市| 西城区| 澎湖县| 乌拉特后旗| 武山县| 扎鲁特旗| 依兰县| 红安县| 宾阳县| 聊城市| 运城市| 临泽县| 吐鲁番市| 霞浦县| 敦煌市| 台南市|