AspectJ 引入了一個 Ant 任務,稱為 iajc,充當著 javac 的角色;此過程對方面進行編譯并將其編入主體代碼中。在本例中,只要是我指定了 OVal 約束條件的地方,在 OVal 代碼中定義的邏輯就會編入我的代碼,進而充當起前置條件和后置條件。
請記住 iajc 代替了 javac。例如,清單 6 是我的 Ant build.xml 文件的一個代碼片段,其中對代碼進行了編譯并把通過代碼標注發現的所有 OVal 方面編入進來,如下所示:
清單 6. 用 AOP 編譯的 Ant 構建文件片段