最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java基于AspectJ(面向切面編程)編碼示例分享

 更新時間:2014年02月16日 09:59:45   作者:  
AspectJ是一種面向切面程序設(shè)計的基于Java的實現(xiàn),下面對過示例學(xué)習(xí)他的使用方法,需要的朋友可以參考下

一、基本概念

AspectJ是一種面向切面程序設(shè)計的基于Java 的實現(xiàn)。它向 Java 中加入了連接點(Join Point)這個新概念,其實它也只是現(xiàn)存的一個 Java概念的名稱而已。它向 Java 語言中加入少許新結(jié)構(gòu):切點(pointcut)、通知(Advice)、類型間聲明(Inter-type declaration)和方面(Aspect)。切點和通知動態(tài)地影響程序流程,類型間聲明則是靜態(tài)的影響程序的類等級結(jié)構(gòu),而切面則是對所有這些新結(jié)構(gòu)的封裝。

基于切面、連接點、切點、通知的概念如下:

Aspect: Aspect 聲明類似于 Java 中的類聲明,在 Aspect 中會包含著一些 Pointcut 以及相應(yīng)的 Advice。
Joint point:表示在程序中明確定義的點,典型的包括方法調(diào)用,對類成員的訪問以及異常處理程序塊的執(zhí)行等等,它自身還可以嵌套其它 joint point。
Pointcut:表示一組 joint point,這些 joint point 或是通過邏輯關(guān)系組合起來,或是通過通配、正則表達式等方式集中起來,它定義了相應(yīng)的 Advice 將要發(fā)生的地方。
Advice:Advice 定義了在 pointcut 里面定義的程序點具體要做的操作,它通過 before、after 和 around 來區(qū)別是在每個 joint point 之前、之后還是代替執(zhí)行的代碼。
連接點是程序流中適當(dāng)?shù)囊稽c。切點收集特定的連接點集合和在這些點中的值。一個通知是當(dāng)一個連接點到達時執(zhí)行的代碼,這些都是 AspectJ的動態(tài)部分。其實連接點就好比是程序中的一條一條的語句,而切點就是特定一條語句處設(shè)置的一個斷點,它收集了斷點處程序棧的信息,而通知就是在這個斷點前后想要加入的程序代。AspectJ 中也有許多不同種類的類型間聲明, 這就允許程序員修改程序的靜態(tài)結(jié)構(gòu)、 名稱、 類的成員以及類之間的關(guān)系。AspectJ 中的方面是橫切關(guān)注點的模塊單元。它們的行為與 Java語言中的類很象,但是方面還封裝了切點、通知以及類型間聲明

二、如何基于AJDT: AspectJ Development Tools進行AOP程序的開發(fā)?

按照ajdt網(wǎng)站上的說明,在eclipse中安裝ajdt插件http://www.eclipse.org/ajdt/
創(chuàng)建AspectJ Project項目
進行代碼開發(fā)(本文提供一個簡單的示例)

三、簡單示例:

復(fù)制代碼 代碼如下:

package aop.test;

public interface FigureElement {
 public void setXY(int x,int y);
 public void draw();
}

復(fù)制代碼 代碼如下:

package aop.test;

public class Point implements FigureElement {

 public int x;
 private int y;

 public int getX() {
  return x;
 }

 public String setX(int x) {
  System.out.println("設(shè)置x值:x="+x);
  this.x = x;
  return "返回值是x="+x;
 }

 public int getY() {
  return y;
 }

 public void setY(int y) {
  this.y = y;
 }

 public Point(){

 }

 public Point(int x,int y){
  this.x=x;
  this.y=y;
 }

 @Override
 public void setXY(int x,int y) {
  this.x=x;
  this.y=y;
  System.out.println("Point setXY: x="+x+",y="+y);
 }

 @Override
 public void draw() {
  System.out.println("Point draw");
 }

 @Override
 public String toString(){
  return "Point: x="+x+",y="+y;
 }
}

相關(guān)文章

  • java針對電話號碼正則匹配實例

    java針對電話號碼正則匹配實例

    這篇文章主要介紹了java針對電話號碼正則匹配的方法,涉及java正則匹配與字符串操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Redisson可重入鎖解鎖邏輯詳細講解

    Redisson可重入鎖解鎖邏輯詳細講解

    Redisson開源框架是一個Redis的分布式鎖的現(xiàn)成實現(xiàn)方案,是Redis的java實現(xiàn)的客戶端。通過Netty支持非阻塞I/O。Redisson實現(xiàn)了分布式鎖的自動續(xù)期機制、鎖的互斥自等待機制、鎖的可重入加鎖與釋放鎖的機制
    2023-02-02
  • SpringBoot中yml多環(huán)境配置的3種方法

    SpringBoot中yml多環(huán)境配置的3種方法

    這篇文章主要給大家介紹了SpringBoot中yml多環(huán)境配置的3種方法,文中有詳細的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-10-10
  • RabbitMQ消息確認機制剖析

    RabbitMQ消息確認機制剖析

    這篇文章主要為大家介紹了RabbitMQ消息確認機制剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 利用Postman和Chrome的開發(fā)者功能探究項目(畢業(yè)設(shè)計項目)

    利用Postman和Chrome的開發(fā)者功能探究項目(畢業(yè)設(shè)計項目)

    這篇文章主要介紹了利用Postman和Chrome的開發(fā)者功能探究項目(畢業(yè)設(shè)計項目),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • OpenTelemetry初識及調(diào)用鏈Trace詳解

    OpenTelemetry初識及調(diào)用鏈Trace詳解

    這篇文章主要為為大家介紹了OpenTelemetry初識及調(diào)用鏈Trace詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Java數(shù)據(jù)脫敏實現(xiàn)的方法總結(jié)

    Java數(shù)據(jù)脫敏實現(xiàn)的方法總結(jié)

    數(shù)據(jù)脫敏,指的是對某些敏感信息通過脫敏規(guī)則進行數(shù)據(jù)的變形,實現(xiàn)敏感隱私數(shù)據(jù)的可靠保護,本文主要是對后端數(shù)據(jù)脫敏實現(xiàn)的簡單總結(jié),希望對大家有所幫助
    2023-07-07
  • 記一次用IDEA打開java項目后不能運行的解決方法

    記一次用IDEA打開java項目后不能運行的解決方法

    這篇文章主要介紹了記一次用IDEA打開java項目后不能運行的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java實現(xiàn)數(shù)據(jù)脫敏的方法詳細講解

    Java實現(xiàn)數(shù)據(jù)脫敏的方法詳細講解

    這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)數(shù)據(jù)脫敏的相關(guān)資料,數(shù)據(jù)脫敏是指對某些敏感信息通過脫敏規(guī)則進行數(shù)據(jù)的變形,實現(xiàn)敏感隱私數(shù)據(jù)的可靠保護,需要的朋友可以參考下
    2023-06-06
  • 若依 MyBatis改為MyBatis-Plus的實現(xiàn)步驟

    若依 MyBatis改為MyBatis-Plus的實現(xiàn)步驟

    本文主要介紹了若依 MyBatis改為MyBatis-Plus的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08

最新評論

冀州市| 镇坪县| 梁平县| 中西区| 浮梁县| 喀什市| 姜堰市| 承德市| 广饶县| 莆田市| 青河县| 垦利县| 阳春市| 石门县| 台江县| 稷山县| 兖州市| 长顺县| 承德县| 虞城县| 吉林省| 综艺| 白银市| 德令哈市| 合山市| 上杭县| 尼木县| 佛坪县| 通海县| 长宁县| 伊吾县| 卢龙县| 武穴市| 张家界市| 竹山县| 南开区| 太仆寺旗| 额尔古纳市| 个旧市| 故城县| 三原县|