3

私のプロジェクトの 1 つで、ログ ファサードとして slf4j を使用しています。特定の Bean プロパティに適用すると、ログが記録されないようにするアノテーションを開発したいと考えています。ログ記録中のみ、「****************」のような値でそのプロパティ値をマスクする必要があります。誰かがそれを行う方法についてアイデアを教えてもらえますか? 春のAOPでやってみました。ポイントカット式では、Bean プロパティで get メソッドが呼び出される前後にアスペクトを呼び出す式を記述しました。しかし、それは無駄に終わった。サンプル Bean コードは次のとおりです。

public class MyBean{
      private String property;

      public void setProperty(String property){
          this.property = property;
      }

      @NotLoggable   // This is the annotation which I should develop
      public String getProperty(){
           return property;
      }
  }

@NotLoggableこの側面は、注釈が付けられた get* メソッドが error()、warn() などのロガー メソッド内で呼び出された場合にのみ適用されます。

または、次のコードのようにフィールド (プロパティ) に注釈を適用でき、ログ記録が妨げられた場合、それも問題ありません。

public class MyBean {

      @NotLoggable   // This is the annotation which I should develop
      private String property;

      public void setProperty(String property){
          this.property = property;
      }


      public String getProperty(){
           return property;
      }
  }

これに代わるものはありますか?

アスペクトは私を助けることができますか?

4

0 に答える 0