2016-05-04 4 views
1

注釈付きメソッドの呼び出し時にカスタムを作成する方法、または既存の注釈を使用してコードをトリガーする方法はありますか?私は、Springライブラリを使いたいと思っています。例えば注釈付きメソッドが呼び出されたときに別の関数を実行

@SendEmail("templateName") 
public void doSomething() { 
    log.info("Something is happening"); 
} 

public void sendEmail(String templateName) { 
    // This method is called everytime doSomething() is called 
    log.info("Sending email using template " + templateName); 
} 
+1

はなぜすぐ内側 'doSomething'から' sendEmail'を呼び出すことではありませんか? – user3719857

+0

'sendMail'は、異なるテンプレートを持つシステムのさまざまなクラスの複数のメソッドによって使用されます。これの背後にある私の考えは、クラスの中にsendMailsのクラスを宣言/ autowiringすることを避けて、静的メソッドの混乱や参照を避けることができるということです。 – SelketDaly

+2

私が考えることができるのはインターセプタですが、それがうまくいくかどうかは分かりません。 – user3719857

答えて

0
@Component 
@Aspect 
public class Mail { 
    @After("execution (@com.yourdirectoryofyourcustomAnnotation.SendMail * *(..))") 
    public void sendEmail(JointPoint jp){ 
     // it will send a mail after every method which tagged by your annotation 
    } 
} 
関連する問題