當前位置:生活全書館 >

IT科技

> aspectj java

aspectj java

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java aspectj是什麼,讓我們一起了解一下?

AspectJ是一個基於Java語言的AOP框架,提供了強大的AOP功能,擴充套件了Java語言,它有一個專門的編譯器用來生成遵守Java位元組編碼規範的Class檔案

為什麼aspectj型別間宣告很重要?

AspectJ的型別間宣告指的是那些跨越類和它們的等級結構的宣告。考慮一下,Java語言中如何向一個一些的類中加入新方法,這需要實現一個特定介面,所有類都必須在各自內部實現介面宣告的方法,而使用AspectJ則可以將這些工作利用型別間宣告放在一個方面中。這個方面宣告方法和欄位,然後將它們與需要的類聯絡。

java aspectj

假設我們想有一個Sreen物件觀察Point物件的變化,當Point是一個存在的類。我們可以通過書寫一個方面,由這個方面宣告Point物件有一個例項欄位observers,用來儲存所有觀察Point物件的Screen物件的引用,從而實現這個功能。

Aspect PointObserving{Private Collection Point.observers=new ArrayList();……}observers欄位是私有欄位,只有PointObserving能使用。因此,要在aspect中加入方法管理observers聚集。Aspect PointObserving{Private Collection Point.observers=new ArrayList();Public static void addObserver(Point p,Screen s){p.observers.add(s);}public static void removeObserver(Point p,Screen s){p.observers.remove(s);}……}

那麼如何使用AspectJ?

模擬一個普通程式:

服務類UserService:public class UserService{    public int addUser(){        System.out.println("模擬新增使用者的方法。");        return 20;    }    public void validateLogin(){        System.out.println("驗證使用者登入。");    }}服務類BookServce:public class BookService{    public int addBook(String name,int price){        System.out.println("正在新增圖書,書名是:"+name+",價格是:"+price);        return 100;    }}

標籤: java aspectj
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/6vn65q.html