領先一步
VMware 提供培訓和認證,以加速您的進度。
了解更多如您所知,Spring 2.0 的重大改進之一是新增了 AspectJ pointcut 語言,並更完善地與 AspectJ 整合。雖然我認為這將會是長遠來看的一大優勢,但它也導致了一些問題。我們發現 Spring AOP 一直以來都有一些行為,但 AspectJ 從未有過。
其中一個主要問題是 Before advice 的行為。如果您在 Spring 1.x 中使用過 Spring AOP,您可能知道 Spring 允許您在參數傳遞給目標方法之前變更其值。但您可能不知道的是,AspectJ 從未允許這種行為。
這對您,使用者來說,意味著什麼? 這取決於您未來計畫做什麼。我們已決定,如果您繼續使用 AOP Alliance 介面進行 AOP,您將繼續獲得與以往相同的語意;沒有任何改變。如果您未來使用 AspectJ pointcut 語言,您將獲得精確的 AspectJ 語意。如果您想使用 AspectJ 的 pointcut 語言,但仍然想變更參數值,這是可能的,但您需要遵守 AspectJ 的語意,並使用 Around advice 而不是 Before advice。
因此,最終,我們仍然設法實現了我們的目標:在適當的情況下,在遵守 AspectJ 語意的同時,實現直接替換。