2016-06-28 4 views
0

私が理解したこと@Aroundアドバイスは、BeforeとAfterの状態を共有する必要があるときに使用でき、メソッドの実行もスキップします。私の質問は、Springがメソッド実行をスキップするこの力を与え、メソッドをスキップするというユースケースは何か?around adviceのメソッド実行をスキップするユースケースは何ですか?

+0

元の呼び出しコードを変更したい、または変更できないようにします。 –

+0

答えを詳しく教えてもらえますか? –

+0

私の質問はそれをスキップするときです、私は引数を変更することができます知っています。 –

答えて

0

通常、メソッド呼び出しには副作用があります。これらの副作用が何らかの理由で望ましくないとあなたが判断したときはいつでも、元の実行をスキップする有効なユースケースです。これには、例えば、副作用がデータではなく実行時間である場合のキャッシングの使用例が含まれます。

+0

ありがとうございました!その非常に満足のいく答え。 –

+0

有用であるとわかったら、私の答えをupvote/acceptするのを忘れないでください。 –

+0

私は新しいユーザーですが、一度は15ポイントに達します。 –

1

副作用としてNándorと言われています。

バギーJavaクラス:

package de.scrum_master.app; 

public class Earth { 
    public String getShape() { 
     return "disc"; 
    } 
} 

たぶん、あなたも、あなたがのか、他の理由のためにソースコードを持っていないクラスにバグがある可能性があるため、完全に戻り値を置き換えたいですドライバアプリケーション:

package de.scrum_master.app; 

public class Application { 
    public static void main(String[] args) { 
     System.out.println("The Earth is a " + new Earth().getShape() + "."); 
    } 
} 

コンソールログ:

The Earth is a disc. 

バグ修正の様相:

package de.scrum_master.aspect; 

import de.scrum_master.app.Earth; 

public aspect BugfixAspect { 
    String around() : execution(* Earth.getShape()) { 
     return "sphere"; 
    } 
} 

コンソール側面に適用してログインします:あなたは、任意の条件に基づいてメソッドを実行したくないとそうでないならば

The Earth is a sphere. 
関連する問題