0
我正在使用Spring AOP進行日誌記錄,其中我想記錄包中所有方法的輸入/輸出。我已經爲目標包編寫了以下切入點。編寫精確的切入點表達式
@Pointcut("within(com.mypackage.model.*)")
public void allmethods(){};
我的記錄方法如下。
@Before("allmethods()")
public void LoggingAdviceBefore(JoinPoint joinPoint)
{
StringBuffer logMessage = new StringBuffer();
if(joinPoint != null && joinPoint.getTarget()!=null && joinPoint.getTarget().getClass()!=null)
{
logMessage.append(joinPoint.getTarget().getClass().getName());
logMessage.append(".");
logMessage.append(joinPoint.getSignature().getName());
logMessage.append("(");
// append args
Object[] args = joinPoint.getArgs();
for (int i = 0; i < args.length; i++) {
logMessage.append(args[i]).append(",");
}
if (args.length > 0) {
logMessage.deleteCharAt(logMessage.length() - 1);
}
logMessage.append(")");
log.info(logMessage.toString());
}
}
該代碼工作正常。
我的問題是,即使我做了一些簡單的操作,例如在我的代碼中填充數組列表,即使該信息正在記錄。我不希望這些信息被記錄下來。
我想記錄輸入只用於我寫在目標包&中的類中寫入的方法,而不是寫入這些方法內的代碼。我如何實現這一目標?
AspectJ文檔中充滿了更多限制性切入點規範的示例。你讀過了嗎? – slim
我做了一個基本的搜索,但沒有得到我想要的。你能建議一個好的網站來提高我的知識嗎? –
https://www.eclipse.org/aspectj/doc/released/progguide/ – slim